如何在交换机中使用Apple的SDK常量,同时保持DRY?

时间:2015-03-19 19:42:41

标签: enums swift

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

var NSUbiquitousKeyValueStoreServerChange: Int { get }
var NSUbiquitousKeyValueStoreInitialSyncChange: Int { get }
var NSUbiquitousKeyValueStoreQuotaViolationChange: Int { get }
var NSUbiquitousKeyValueStoreAccountChange: Int { get }

我更喜欢使用Swift的详尽开关检查,以及一般的样式整合。必须有一个非常明显的原因或设计范例,为什么将这些常量放在Enum中是个坏主意还是不可能?

也许是因为这些值是在NSDictionary内使用的,并且使用常量强制用户从NSDictionary向下转换NSObject,并且通常使用类型结构/基元/枚举在这种情况下会产生误导?

0 个答案:

没有答案