似乎在 Objective-C 中有一个标准约定,如果方法是alloc
、new
或copy
,则:您现在拥有新对象的所有权,因此您应该使用它来释放它[obj release]
(假设这不是 ARC) .
但是,如果获取新实例的方法是通过那些“方便的方法”,例如 in [NSMutableArray arrayWithCapacity:100]
,因为它不是alloc
,new
或copy
,所以按照惯例,新对象在自动释放池中,您不必担心释放它?
似乎在 Objective-C 中有一个标准约定,如果方法是alloc
、new
或copy
,则:您现在拥有新对象的所有权,因此您应该使用它来释放它[obj release]
(假设这不是 ARC) .
但是,如果获取新实例的方法是通过那些“方便的方法”,例如 in [NSMutableArray arrayWithCapacity:100]
,因为它不是alloc
,new
或copy
,所以按照惯例,新对象在自动释放池中,您不必担心释放它?
是的,如果你没有分配对象,你就不需要释放它。(当然在你的假设下)
是的,这是真的。这是定义规则的 Objective-C 参考(这更像是一种约定,但是如果您不遵守约定,clang 静态分析器将反对)。