Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Objective C“new”的内存管理语义_Objective C_Cocoa - Fatal编程技术网

Objective c Objective C“new”的内存管理语义

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是alloc init或alloc init autorelease的等价物吗

我似乎在任何关于Cocoa内存管理的教程或文章中都找不到它


谢谢你的建议。

怎么样。阅读它们,理解它们,它们很简单。

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的结合。。。如果这是令人毛骨悚然的莫名其妙,那就没有多少是明确的了。