Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Enums 如何使用苹果&x27;保持干燥时,开关中的SDK常数是多少?_Enums_Swift - Fatal编程技术网

Enums 如何使用苹果&x27;保持干燥时,开关中的SDK常数是多少?

Enums 如何使用苹果&x27;保持干燥时,开关中的SDK常数是多少?,enums,swift,Enums,Swift,在苹果的NSUbiquitousKeyValueStore类中,有一个NSUbiquitousKeyValueStoreChangeReasonKey是userInfo通知的字符串查找键。其可能值为 var NSUbiquitousKeyValueStoreServerChange: Int { get } var NSUbiquitousKeyValueStoreInitialSyncChange: Int { get } var NSUbiquitousKeyValueStoreQuotaV

在苹果的
NSUbiquitousKeyValueStore
类中,有一个
NSUbiquitousKeyValueStoreChangeReasonKey
是userInfo通知的字符串查找键。其可能值为

var NSUbiquitousKeyValueStoreServerChange: Int { get }
var NSUbiquitousKeyValueStoreInitialSyncChange: Int { get }
var NSUbiquitousKeyValueStoreQuotaViolationChange: Int { get }
var NSUbiquitousKeyValueStoreAccountChange: Int { get }
我更希望有一个enum可以从Swift彻底的开关检查中获益,并且只是一般的样式一致性。为什么将这些常量放在
Enum
中是一个坏主意或不可能,必须有一个非常明显的原因或设计范例


可能是因为这些值在
NSDictionary
中使用,并且使用常量会强制用户从
NSDictionary
中向下转换NSObjects,通常使用类型化结构/原语/枚举在这种情况下会产生误导

它很可能是从Obj-C自动转换而来的,很少或根本没有人工审查。这就是我想知道的,我开始认为编写这个类的人一定知道一些我不知道的东西,并以这种方式做出了明确的设计选择。或者它只是一个遗产的产物?也许关于
NSDictionary
的值的某些内容只能采用
NSObject
s?有根据的猜测:在Obj-C中,它是一个匿名枚举,因此无法从字符串表示中自动删除枚举名称前缀。