今天我读了这样的代码,让我感到困惑。争论“错误”后的问号是什么意思?
if error? == nil {
self.updateDate(NSDate())
self.updateImage(originalPrice, newPrice: price!)
self.updatePrice(price!)
}
编辑:错误的定义来自这里
public func requestPrice(completion: PriceRequestCompletionBlock)
public typealias PriceRequestCompletionBlock = (price: NSNumber?, error: NSError?) -> ()
tracker.requestPrice { (price, error) -> () in
if error? == nil {
self.updateDate(NSDate())
self.updateImage(originalPrice, newPrice: price!)
self.updatePrice(price!)
}
}
答案 0 :(得分:3)
问号用于optionals展开。
但在这种情况下它什么都不做。
答案 1 :(得分:-1)
在Swift中,变量不能为零......除非您在类型定义中指定了这种可能性。在您的情况下,请求完成块可以返回错误...或者如果一切正常,则可以为零。
以下是Apple文档的链接:
在if语句中,问号不执行任何操作。你可以删除它。