【发布时间】:2020-05-18 21:59:15
【问题描述】:
在 Swift 中,Apple 的 UITextContentType 是一个具有许多 UITextContentType 类型的静态属性的结构体,例如:
static let URL: UITextContentTypestatic let addressCity: UITextContentTypestatic let addressCityAndState: UITextContentType
等等。
但 UIKit/UITextInputTraits.h 有:
typedef NSString * UITextContentType NS_TYPED_ENUM;
而且我注意到,在 Swift 中,编译器推断 UITextContentType,允许您简单地使用 .URL 或 .addressCityAndState 而不是 UITextContentType.URL 或 UITextContentType.addressCityAndState 用于任何采用 UITextContentType 类型的函数参数(因此像枚举一样对待它)。
那么他们为什么不直接使用enum 开头呢?使用这种模式有什么好处......?我们什么时候想在自己的代码中使用这种模式?
【问题讨论】:
标签: swift struct enums uikit uitextfield