Objective c Objective C“new”的内存管理语义
new是alloc init或alloc init autorelease的等价物吗 我似乎在任何关于Cocoa内存管理的教程或文章中都找不到它Objective c Objective C“new”的内存管理语义,objective-c,cocoa,Objective C,Cocoa,new是alloc init或alloc init autorelease的等价物吗 我似乎在任何关于Cocoa内存管理的教程或文章中都找不到它 谢谢你的建议。怎么样。阅读它们,理解它们,它们很简单。new返回一个retain计数为1的对象,就像[[alloc]init]。对象未自动删除。+[NSObject new]在功能上等同于+[NSObject alloc],后跟-[NSObject init],即[alloc]init] 要回答您的问题,请参阅NSObject类文档: 如果您使用的是托
谢谢你的建议。怎么样。阅读它们,理解它们,它们很简单。new返回一个retain计数为1的对象,就像[[alloc]init]。对象未自动删除。+[NSObject new]在功能上等同于+[NSObject alloc],后跟-[NSObject init],即[alloc]init] 要回答您的问题,请参阅NSObject类文档: 如果您使用的是托管内存,那么 垃圾收集,这种方法 在返回之前保留对象 信息技术返回的对象不正确 自动释放。这个问题的调用者 方法负责发布 返回的对象,使用 释放或自动释放
在现代Cocoa代码中很少使用new。大多数Cocoa开发人员更喜欢显式、清晰的代码,而不是保存几个按键。因此,alloc/init是首选 请参见+1,请,请阅读Cocoa的内存管理指南。然后再读一遍。另外,这篇文章中关于+new的文档:这是关于NSObject+new的Cocoa文档所说的:分配接收类的一个新实例,向它发送一条init消息,并返回初始化的对象。。。该方法是alloc和init的结合。。。如果这是令人毛骨悚然的莫名其妙,那就没有多少是明确的了。