似乎在Objective-C中有一个标准约定,如果方法是alloc
,new
或copy
,那么:您现在拥有新的所有权对象,所以你应该使用[obj release]
释放它(假设这不是ARC)。
但是,如果获取新实例的方法是“方便方法”,例如[NSMutableArray arrayWithCapacity:100]
,那么因为它不是alloc
,new
或{{ 1}},所以按照惯例,新对象是在自动释放池中,你从不担心释放它?
答案 0 :(得分:2)
是的,如果您没有分配对象,则无需释放它。 (根据你的假设当然)
答案 1 :(得分:2)
是的,这是真的。这是Objective-C reference that defines the rule(这更像是一个约定,但是如果你不遵守约定,clang静态分析器会反对。)