Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.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
Iphone 在将另一个对象分配给实例对象之前,是否需要释放实例对象';谁的推荐信?_Iphone_Objective C - Fatal编程技术网

Iphone 在将另一个对象分配给实例对象之前,是否需要释放实例对象';谁的推荐信?

Iphone 在将另一个对象分配给实例对象之前,是否需要释放实例对象';谁的推荐信?,iphone,objective-c,Iphone,Objective C,我有一个NSMutableArray对象(在我的例子中是一些系统)。我通过读取XML请求系统的新数据,并从中创建一些新系统。在某些情况下,我希望更新NSMutableArray中的系统,有时则不想。。 因此,当我想要更新时,我会说 system=[updatedSystem copy] (我的系统模型已实现-(id)copyWithZone:(NSZone*)zone) 我的问题是,我是否需要在system=[updatedsystemcopy]之前释放我的旧系统对象 即。 [系统发布] sys

我有一个NSMutableArray对象(在我的例子中是一些系统)。我通过读取XML请求系统的新数据,并从中创建一些新系统。在某些情况下,我希望更新NSMutableArray中的系统,有时则不想。。 因此,当我想要更新时,我会说

system=[updatedSystem copy]

(我的系统模型已实现
-(id)copyWithZone:(NSZone*)zone

我的问题是,我是否需要在
system=[updatedsystemcopy]之前释放我的旧系统对象

即。
[系统发布]


system=[updatedSystem copy]

是如果复制了它,您必须
释放
,因为复制的对象在从复制功能返回之前没有释放。

是如果复制了它,您必须
释放
,原因复制的对象在从复制函数返回之前不会被释放。

规则是,无论何时使用init、new或copy,您都拥有释放的所有权。如果你复制了它,你有责任发布它


请参阅Apple的以下文章:

规则是,无论何时使用init、new或copy,您都拥有发布的所有权。如果你复制了它,你有责任发布它


请参阅Apple的以下文章:

因此,在使用=[object copy]时它不会自动处理?是的,您必须释放复制的对象,因此在使用=[object copy]时它不会自动处理?是的,您必须释放复制的对象为什么不使用属性?它们封装了内存管理代码并简化了样板文件。因为我的系统模型有很多不同的属性,所以我需要进行深度复制。为什么不使用属性呢?它们封装了内存管理代码并简化了样板文件。因为我的系统模型有很多不同的属性,所以我需要进行深度复制。