大佬教程收集整理的这篇文章主要介绍了迅速 – 强迫展开vs不,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
var gamescore = PFObject(className: "Gamescore") gamescore.setObject(1337,forKey: "score") gamescore.setObject("Sean Plott",forKey: "playerName") gamescore.saveInBACkgroundWithBlock { (success: Bool!,error: NSError!) -> Void in if success { NSLog("Object created with id: \(gamescore.objectId)") } else { NSLog("%@",error) } }
我对这部分感到好奇:“(成功:Bool!,错误:NSError!)”,特别是惊叹号.我对选项的理解是这样的:
NSError:这是一个NSError,不能为nil.
NSError?:这可能包含NSError或者它可能是nil,但它需要先解包.
NSError!:这是一个强制解包的NSError ?,因此不能为零.
Facebook的例子说成功是Bool!和错误是一个NSError! – 即,它们都是明确提供的.为什么他们不仅仅是作为Bool和NSError编写的,只要Facebook在发送它们之前解包它们?此外,如何设置成功和错误?传统使用NSError会说当没有问题时它会设置为nil.
无论如何 – 因为显然他们保证那些对象永远不会是零 – 他们可以隐含地打开它们,允许使用这个API的人保存一些unwraps,这很好.
关于你的陈述
Cocoa中的BOOL / NSError模式指示您必须检查成功值以了解是否发生错误,并且 – 如果是这种情况 – 那么NSError将包含有关它的信息.
检查NSError是否为nil是这种模式的常见误用,它可能导致代码中出现逻辑错误,因为某些Apple API即使在成功的情况下也会返回非零错误.
以上是大佬教程为你收集整理的迅速 – 强迫展开vs不全部内容,希望文章能够帮你解决迅速 – 强迫展开vs不所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。