最近我写了一些代码,我试图引用一个UIViewController
我刚刚实例化[storyboard instantiateViewControllerWithIdentifier]
的插座,并在呈现ViewController
. 它不起作用,因为ViewController
' 的视图尚未加载其子视图,包括我的插座所引用的子视图,因此该属性只给了我一个空指针。
在(经过一番努力)在调试器中跟踪我的问题的原因之后,我四处搜索并通过类似这样myViewController.view
的答案了解到,我可以通过调用getter使视图加载其子视图而不显示。之后,我可以毫无问题地访问我的插座。
不过,这是一个明显的 hack,并且 Xcode - 非常正确 - 不喜欢它,并且愤怒地抗议这个警告:
未使用的属性访问结果 - 不应将 getter 用于副作用
有没有一种不涉及滥用.view
吸气剂的非hacky替代方法?或者,这种场景是否存在规范/惯用模式,涉及动态添加处理程序以在加载子视图后立即调用?
还是标准解决方案只是替换myViewController.view
为[myViewController view]
关闭 Xcode 的警告,然后接受黑客攻击?