swift – 为什么私有扩展无法访问?
这是我的ViewController.
swift文件:
class ViewController: UIViewController { private var myInt = 10 } extension ViewController { func printMyInt() { print(myInt) } } 虽然如Swift documentation – Access Levels section中所述:
由于Swift 4已经发布,我认为我能够实现这样的东西(它也在What’s New in Swift – WWDC 2017会话中提到),然而,编译器告诉我:
它与文档中提到的内容不兼容吗? 作为一个简单的快速解决方案,我可以将其声明为: fileprivate var myInt = 10 但我想知道为什么它会像这样,我误解了文档中提到的内容?或者它是一个“Xcode”错误(使用9.0.1版本)? 备注:该项目已在较旧的Xcode 8中创建,然后迁移到Xcode 9.
在Swift 4中,私有成员可以访问同一文件中该声明的扩展,请参阅
SE-0169 – Improve Interaction Between private Declarations and Extensions.
如果项目已在Xcode 8(使用Swift 3)中创建,那么 要使私有扩展在同一文件中对扩展名可见, 更好的是,使用“编辑 – >转换 – >到当前的Swift语法……” (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |