我开始编写我们的 iPhone 应用程序的第二个版本,我正在尝试整理以前的错误(因为这是我第一次尝试 Objective-C)。我的问题与“当 UIViewController 被销毁时我需要做的事情”有关,那里似乎有一些相互矛盾的答案,我想确保我理解正确。
几个约束:
- 此代码适用于 iOS 5 和 iOS 6 设备
- 我不希望在 viewWillAppear 和 viewWillDisappear 上注册和取消注册 NSNotifications,因为 UIViewControllers 需要接收通知,即使它们不能被用户看到。
- 我使用的是 StoryBoard 而不是单独的 nib 文件。
那么考虑到上述限制,以下陈述是否正确?
- 将情节提要连接到 UIViewControllers 的 IBOutlets 应该是弱的,强引用将在幕后创建。
- 因为 IBOutlets 很弱,所以我不需要在内存不足的情况下将它们归零
- 我不应该使用 viewDidUnload,因为它已被弃用,我应该使用 didReceiveMemoryWarning。在这种情况下,我只需要消除强属性(可以重新计算)
- 在 viewDidLoad 上注册 NSNotifications 是可以接受的。
- 因为我希望在隐藏视图时继续接收通知,所以取消注册它们的最佳位置是在 dealloc 中,在 didReceiveMemoryWarning 中也取消注册它们没有任何好处。
谢谢你的帮助,
担