import UIKitclass categoryVIEwController: UICollectionVIEwController { lazy var searchController: UISearchController = { let searchController = UISearchController(searchResultsController: nil) searchController.searchbar.frame = CGRect(x: 0,y: 0,wIDth: CGRectGetWIDth(self.collectionVIEw.frame),height: 44) return searchController }()}
现在,每当我尝试在惰性块中引用self时,它会产生以下结果:
self.(<#NSObject#>)
并且无法访问其他任何属性.
如果我尝试对它们进行硬编码,它会产生:
UICollectionVIEw? does not have a member named 'frame'
并且上面的代码显示:
Extra argument 'wIDth' in call
我已经尝试重写代码并消除派生数据,再次构建但错误仍然存在.关于它为什么会发生的任何想法?
提前致谢
更新自动填充框:
解决方法UICollectionVIEw? does not have a member named ‘frame’
看问号?这意味着这是一个可选项.在打开包装之前,您无法向Optional发送任何消息.所以解开它:self.collectionVIEw!.frame
编辑之前这个工作原因,然后你的代码坏了,是Swift API发生了变化. Apple做了很多这样的事情,所以你必须“随心所欲”.每次升级Xcode时,您都需要准备好让代码中断.关于UICollectionVIEwController的collectionVIEw是否应该是Optional,他们已经改变了三次思路.我完全不相信他们的答案是正确的.
进一步编辑显示自动完成工作:
总结以上是内存溢出为你收集整理的ios – 无法在swift中的懒惰属性中引用self全部内容,希望文章能够帮你解决ios – 无法在swift中的懒惰属性中引用self所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)