我试图使NSNull
符合NilLiteralConvertible
,但我遇到了巨大的挫败感:
extension NSNull : NilLiteralConvertible{
required convenience init(nilLiteral: ()){
self.init()
}
}
首先,我不得不做init
一个convenience
,因为我不能在扩展中添加指定的初始化程序。
然后,编译器发疯并坚持必须进行初始化required
,并且在抱怨required
必须将初始化程序直接添加到类而不是扩展之后立即进行。怎么回事?!
任何人都知道发生了什么以及如何使NSNull
符合这个简单的协议?
我正在 Xcode 操场上对此进行测试。