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

标签 ios objective-c memory-management view

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

而且我也明白(有点?),如果我在我的某些类中使用 @propertyretain,或者使用 alloc/init 的一些实例变量,然后我应该编写一个自定义 dealloc 以确保这些 dealloc 与该类一起被释放。

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

另外,能否手动释放UILabelUITextField等?我确实知道当您取消分配 View 时,它们会被杀死,但我还是要再次确认一下吗?

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

最佳答案

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

关于ios - 我需要澄清一下我是否应该(可以?)解除分配与 View 相关的 UI 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31488908/

相关文章:

ios - Xcode I Tableview viewItemWithTag 无法从 UITableViewCell 转换为 UIImageView

c - SIGSEGV 是否传送到每个线程?

.net - 一个空的委托(delegate)会吃掉内存吗?

c++ - 堆分配的 const 对象与非 const 对象有何不同?

iphone - 从 Plist 中的数组创建 NSArray

multithreading - iOS开发中的线程安全

ios - Swift Multiple Alert Dialog 将我的界面淡出到黑色

ios - 在 swift 中使用 tableview 搜索 Controller 滚动

objective-c - AppDelegate 中的方向检测

objective-c - (iOS) 为什么 AVAudioPlayer initWithContentsOfURL 总是失败,错误代码=-43