ios - Objective-C内存管理: if I alloc init multiple times,需要释放多次吗?

标签 ios objective-c

如果我有一个 UIPopoverController(在 .h 文件中)并在同一个 .m 文件中多次分配初始化它。我需要发布一次到多次吗?

最佳答案

这里的引用计数很重要。

规则是:当没有人拥有它们时,对象就会消亡。如果您在不释放它的情况下丢失了对它的引用,那么您将泄漏

获得对象所有权的常用方法有两种:

  • 您自己创建它(通过调用 alloc 方法)
  • 你在上面调用retain

而且,还有两种常见的方法可以放弃对对象的所有权:

  • 您对其调用release
  • 您对其调用autorelease

因此,每次分配一个对象时,您有责任在使用完后释放它。这可能意味着您只需发布一次,即使您可以通过多个代码路径创建它。 但是,如果要用新对象覆盖变量,则必须确保释放它。

关于ios - Objective-C内存管理: if I alloc init multiple times,需要释放多次吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3273109/

相关文章:

iphone - 在 Interface Builder 中为 Iphone 创建弹出 View Controller

ios - React Native MapView 未在 iOS 独立构建上显示

iphone - PDF 417 检测和解码

iphone - 循环遍历字典;为什么我不能按字母顺序获取 key ?

iphone - 检测邮件链接并按下时,在应用程序中邮寄地址

iphone - 在多个 View Controller 中使用委托(delegate)

ios - 在二进制数据中查找字符串

objective-c - 循环最多运行一次,(循环增量从不执行)

ios - ios sortedArrayUsingComparator但始终在开头保留一些值

ios - ObjC在字符串中搜索@(iOS @转义码)