- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图让 NSNull
符合 NilLiteralConvertible
,但我遇到了很多挫折:
extension NSNull : NilLiteralConvertible{
required convenience init(nilLiteral: ()){
self.init()
}
}
首先,我不得不让 init
成为一个 convenience
,因为我不能在扩展中添加指定的初始化程序。
然后,编译器发疯了,坚持必须让 init 成为required
,然后立即提示说 required
初始化器必须直接添加到类中,而不是在类中扩大。什么鬼?!
有人知道发生了什么以及如何使 NSNull
符合这个简单的协议(protocol)吗?
我正在 Xcode playground 中对此进行测试。
最佳答案
应该没有理由符合NSNull
至 NilLiteralConvertible
.尽管该协议(protocol)是公开的,但它主要由 NSZone
在内部使用以及 Optionals 在该语言中的实现(参见源代码中的引用资料 here)。您只需将变量声明为 Optional<NSNull>
即可获得所需的行为。 . Optional
枚举符合 NilLiteralConvertible
对你来说,如 Optional.swift 的来源所示:
这行不通:
var null: NSNull
null = NSNull() // <null>
null = nil // error: nil cannot be assigned to type 'NSNull'
但是这样做:
var null: NSNull?
null = NSNull() // <null>
null = nil // nil
关于cocoa - 使 NSNull 符合 NilLiteralConvertible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26822192/
我有方法: func getByEmail(email:String) -> MeeterAccount{ for acct in accountsList { if acct
很快我就有了这个: ///3.5.1.8 Range is ± 32,576 FPM, FPM of 32640 means max. Also can be invalid (nil) var
我试图让 NSNull 符合 NilLiteralConvertible,但我遇到了很多挫折: extension NSNull : NilLiteralConvertible{ requir
在 StoryViewController.swift 中: var story :Story? if story != nil {...}// ERROR: Type UInt8 doer not
在我的 Swift 代码中: override func tableView(tableView: UITableView, titleForHeaderInSection section: Int)
我是 Swift 的新手,我终于完成了我的第一个应用程序,但是当更新发布时,我的代码完全搞砸了。我代码中的大多数错误是由 sendSynchronousRequest 引起的调用中的额外参数“错误”
Binary operator '!=' cannot be applied to operands of type 'Bool' and 'NilLiteralConvertible' 如果 ((o
我有以下代码: if ((error) != nil) { print(error, terminator: "") } 在我的 Swift 程序中(从 Swift 1 转换为 Swift 2
我是一名优秀的程序员,十分优秀!