大佬教程收集整理的这篇文章主要介绍了ios – 为什么Objective-C API返回隐式展开的可选项?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
func cellForRowATindexPath(_ indexPath: NSIndexPath!) -> UITableViewCell!
其返回值为:
这听起来像是使用标准可选的完美的理由.实际上,由于Objective-C中所有基于指针的类型都可以为零,所以Objective-C指针类型应该以标准的可选方式导入.
我从WWDC的谈话中知道,他们说隐含的展开的可选项:
>可以明确测试为零
>可以直接访问属性/方法的底层值
>可以隐式转换为其基础值
而从苹果的Using Swift with Cocoa and Objective-C:
所以,不是将可能的零价值引入Swift作为一个可选的,而是决定将它导入到这个东西,说明这不应该是零…但是可以吗?听起来他们完全否定了Swift for Objective-C API中可选类型的安全性.我似乎缺少什么?
而不是给出编译时错误或警告,他们决定运行时错误更好?这很混乱
考虑到没有什么似乎回答了我所看到的这个问题…我认为这是所有其他人明显的东西,我只是没有看到,但为什么是这样的?
如果在Swift中使用Objective-C API或者更多的东西,是否允许人们使用或选择性链接,这是否真的只是为了保护用户?
当苹果使用隐式解包的可选参数时
func tableView(_ tableView: UITableView!,cellForRowATindexPath indexPath: NSIndexPath!) -> UITableViewCell!
功能,他们让你节省一些额外的if – let.在这种情况下,他们知道他们永远不会通过你一个零;在其他情况下,他们不知道,他们希望你没有检查对象.
他们也允许你返回零.检查结果为零,取决于您,除非您决定自己调用该功能.虽然我不能想到一个有效的原因从你自己的代码调用cellForRowATindexPath,如果你打电话,你的责任是检查返回值为零.
如果您考虑使用参数UITableView的替代方法?和NSIndexPath?相反,所有实现都必须在tableView和indexPath之后使用感叹号,或者使用if-let成语.与此选择相比,隐含展开的类型看起来更好.
以上是大佬教程为你收集整理的ios – 为什么Objective-C API返回隐式展开的可选项?全部内容,希望文章能够帮你解决ios – 为什么Objective-C API返回隐式展开的可选项?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。