了解绑定到核心数据存储的阵列控制器何时加载其内容的最佳方法是什么?
我有一些方法(即awakeFromNib)依赖于具有其内容的数组控制器,但大多数时候,当在该对象上调用awakeFromNib时,数组控制器还没有其内容。
我想延迟我的行动,直到我知道控制器的所有内容为止。
答案 0 :(得分:3)
将代码移动到-windowDidLoad
通常是一个安全的选择,它是在窗口完全加载后调用的,而-awakeFromNib
则可能会遇到问题,因为它会调用所有的您的笔尖中的对象未定义。
一般来说,最好记下您正在进行的所有初始化,哪些部分需要UI才能正常工作,哪些部分可以延迟到用户执行操作,等等。例如,如果你有一个窗口在用户请求之前没有打开,那么延迟执行核心数据提取等工作直到最后一分钟是件好事。另一方面,有时您将使用像大纲视图这样的对象,需要预先填充其数据源以使持久性方法起作用。
一旦你知道你在做什么以及它需要做什么,你可以选择init,awakeFromNib,yyyWillLoad或xxxDidLoad的某种组合,你会在它们之前处理很多这样的错误有机会制造麻烦。
答案 1 :(得分:1)
有关此问题的讨论,请参阅Theocacao