【发布时间】:2012-01-18 19:11:12
【问题描述】:
首先,我是一名 Objective-C 新手。 :)
我了解到,以alloc、new 和copy 开头的任何内容都会为调用者提供返回对象的所有权。这也适用于类方法吗?我猜它确实,最近我的一个单元测试中的一次崩溃似乎证实了这一点。 Apple 的高级内存管理编程指南没有说明类方法和实例方法之间是否有区别。
更新
我的意思是它也适用于类方法实际上是“逆”。例如,NSDecimalNumber 有一个名为+decimalNumberWithDecimal: 的类方法。它似乎返回了一个自动释放的对象(如果我明确地释放它,那么不久就会发生崩溃)。事后看来,我的问题的答案是显而易见的,因为 Apple 的指南将 new 和 alloc 称为所有权授予方法,它们都是类方法。很抱歉占用了您宝贵的时间。 :)
【问题讨论】:
-
您的意思是为您生成对象的类方法吗?是的当然。这种模式是 obj-c 中内存管理的关键之一。甚至非苹果框架也适用于这种模式。
标签: objective-c release ownership class-method