草庐IT

SOME_ENUM

全部标签

swift - 如何将 Enum Case 值保存到 UserDefaults 以供进一步使用

如何将枚举大小写的值保存到UserDefaults?我试过但没有运气。我检查了多个站点,包括这个站点,但没有运气,它们都在Swift2或Objective-c中,我根本无法翻译。 最佳答案 使用符合属性列表的原始值创建枚举,例如IntenumExampleEnum:Int{casedefault1casedefault2casedefault3}隐式地第一种情况是0,第二种情况是1等等。现在您可以将(原始)值保存在UserDefaultsUserDefaults.standard.set(currentDefaultType.raw

swift 协议(protocol) : hiding some properties

我想为UITextView和UITextField创建一个trimmedText属性。这是我所做的:protocolTrimmedTextSupporting:class{var_text:String?{get}vartrimmedText:String{get}}extensionTrimmedTextSupporting{vartrimmedText:String{lettext=self._text??""returntext.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacter

objective-c - 使用 NS_ENUM 的 rawValue 初始值设定项定义的枚举不会失败

我有一个Objective-C文件,其中的枚举定义如下:typedefNS_ENUM(NSInteger,State){State_ACTIVE=0,State_PENDING=1,State_CANCELED=2};在我的swift代码中,如果我执行letstate=State(rawValue:100),通常这应该返回nil,因为它是一个可失败的初始化程序。然而,当枚举被这样声明时(使用NS_ENUM),初始化成功,并且没有迹象表明这是一个无效的枚举值。这是Xcode中的错误,还是按预期工作? 最佳答案 这是预期的行为。对于桥接

swift - Xcode 10.2 将多个目标转换为 Swift 5 : Tries to compile some classes that are not part of target

我有一个包含多个目标的iOSSwift项目。将第一个目标转换为Swift5很容易。将第二个目标转换为Swift5,Xcode10.2尝试编译显然仅存在于第一个目标中的文件并失败(因为它没有编译第一个目标的所有文件并提示未解析的标识符)。我该怎么做才能让Xcode仅编译那些在转换为Swift5时属于目标的文件?如何将我的项目转换为Swift5?清理Build文件夹并重新启动Xcode10.2没有帮助。 最佳答案 我刚刚经历了这个过程,并且能够从迁移指南最后一句话的提示中找出一个相当简单的解决方案https://swift.org/mi

Swift enum - 约束关联值

我有一个代表线宽的枚举,它可以是恒定宽度,也可以是相对于它所在View大小的宽度。enumThickness{caseConstant(Float)//wherevalue≥0caseRelative(Float)//where0≤value≤1}有没有办法将这些关联的值约束构建到枚举类型中?我目前正在对这种类型的属性使用didSet属性观察器:varlineThickness:Thickness{didSet{switchlineThickness{caselet.Relative(x):lineThickness=.Relative(min(max(x,0),1))caselet.

ios - 在 Objective-C 中使用 Swift `enum` 作为属性类型

我有一个Swiftenum定义如下:@objcenumSomeEnum:Int{caseone,two}我可以使用SomeEnum通常在Objetive-C文件中,但是当我想在头文件中声明一个属性时,如下所示:@property(nonatomic,assign)SomeEnumsomeEnum;编译器给出错误信息Unknowntypename'SomeEnum'.有趣的是,我可以在类的私有(private)接口(interface)中创建一个属性。我也尝试清理构建文件夹,但没有帮助。文件-Swift.h已导入.pch文件。您知道问题的根源是什么吗? 最佳答

swift - 如何根据它的属性值获取 Enum 的 rawValue - Swift

这是我的枚举:enumObject:Int{caseHouse1=0caseHouse2=1vardescriptor:String{switchself{case.House1:return"Cottage"case.House2:return"House"}}}我想知道如果我提供描述符的值,是否有办法让rawValue返回?例如,如果我的字符串是“Cottage”,我想知道枚举值(它应该返回0)我怎样才能做到这一点? 最佳答案 您可以为您的枚举创建一个初始化程序,它接受描述符并返回它的枚举值,然后只需调用enumValue.ra

ios - Swift iOS : Parsing of date from a string does not work for some devices. 太奇怪了

这个问题在这里已经有了答案:DateFormatterdoesn'treturndatefor"HH:mm:ss"(1个回答)关闭5年前。调试器显示日期字符串为“2017-08-0100:00:00”,我也传递了正确的格式。但是1台设备的dateFormatter.date部分总是失败(返回nil)。但有些适用于模拟器和其他iphone设备。我正在使用swift3

git 提交出错:failed error: failed to push some refs to

gitpush时候出错:failederror:failedtopushsomerefsto 这是因为远程和本地版本不一致导致的解决办法:1,gitpull--rebaseorigin分支名称gitpull--rebase分支名称:是将远程库中的更新合并到本地库中rebase参数:取消本地更新内容的commit并将本地更新接到远程更新合并之后,2,将rebase后的内容再push到远程分支 gitpushorigin 分支名称参考博文:gitpush错误failedtopushsomerefsto的解决_卖枸杞的程序员的博客-CSDN博客

通信中间件SOME/IP简述

SOME/IPSOME/IP不是广义上的中间件,严格的来讲它是一种通信协议,但中间件这个概念太模糊了,所以我们也一般称SOME/IP为通信中间件。SOME/IP全称是Scalableservice-OrientedMiddlewarEoverIP。也就是基于IP协议的面向服务的可扩展性通信中间件协议。所以,要弄清SOME/IP需要从它的名字出发,要搞清楚它的3个要素:面向服务SOA基于IP协议之上的通信协议中间件SOME/IP功能既然是通信中间件,那么做的就是通信相关的事情。SOME/IP能干的事情有3类:服务发现(ServiceDiscovery)远程服务调用(RPC,remoteprodu