虽然我确定它们存在,但我很难找到或确定在 ViewController 中声明插座的官方最佳实践。
据我所知,有3个选项:
- 仅限伊瓦尔
- 仅财产
- 以 ivar 为后盾的属性
当我尝试通过从 IB 拖入 ViewController 来自动生成属性时,Xcode 当前崩溃,但据我记得,这样做会创建一个没有 ivar 的属性。也可以拖入 ivar 部分,这将创建一个没有属性的 ivar。这表明仅限财产的网点和仅限 ivar 的网点都适用于苹果。
因此,在 viewDidUnload 中,我们需要将 nil 分配给我们的任何出口,但 dealloc 呢?如果我们使用了没有 ivar 的属性,如果我们不应该在 init 或 dealloc 中使用任何访问器,我们如何释放我们的出口?
在我看来,唯一允许我们在没有访问器的情况下释放出口的模式是使用由 ivar 支持的属性,因此我们可以在 dealloc 中手动释放 ivar 而不使用其访问器,但这是 Apple 的一个选项代码生成不支持。