我需要澄清一下我是否应该(可以?)解除分配与视图相关的 UI 元素

I need some clarification about whether I should (could?) deallocate view-related UI elements or not

所以我明白,我应该释放我拥有的对象。 (alloc/copy/retain 东西)

而且我也明白(有点?),如果我在我的一些 class 中有 @propertyretain,或者一些实例变量有 alloc/init , 那么我应该写一个自定义 dealloc 来确保那些被解除分配 class.

我不明白的是我应该手动释放 cell 对象吗? (因为我是在 cellForRowAtIndexPath 中用 alloc/init 创建它的?是的,我知道,tableView 在被释放时应该杀死那些单元格,但我想确定吗?

还有,我可以手动释放UILabelUITextField等等吗?我确实知道当您取消分配视图时,它们会被杀死,但我还是要再次确认一下吗?

更新: 是的,感谢有关引用计数的提示,但该项目的确切目的是使用手动内存管理来做一些简单的事情。 有趣的是,现在的大多数导师都完全跳过了这一部分,所以像我这样的新手必须自己弄清楚所有这些东西。

Objective C 支持 Automatic Reference Counting,它几乎可以为您管理所有内存。我建议您将旧代码迁移到 ARC;这很简单(Xcode 对此有重构支持),它会帮你省去很多麻烦。

除非你有一个指向 UI 元素的 strong/retain 指针,否则它们将在离开屏幕后自动释放。

关于 cells - 你永远不应该 dealloc 它们,因为它们旨在被重复使用。如果您 dealloc 并重新 init 它们,您将在滚动时获得 真正 糟糕的性能。

另外, said, consider using ARC(如果您还没有使用过),您的生活会轻松很多。