1

我注意到我很少使用属性,因为我很少需要在我的类之外访问我的对象的变量;)

所以我通常这样做:

NSMutableArray *myArray; // not a property !

我的问题是:即使我没有将 myArray 声明为属性,如果我这样做,iphone 是否会保留

myArray = arrayPassedToMe;

我想是的,但我只是想确认一下;)

欢迎任何想法!

戈泰

4

2 回答 2

2

如果您不使用“保留”声明属性,则不会进行保留调用。通常最好使用属性访问器(在所有情况下,它都会使内存管理更加简单),但是您可以执行手动保留,如下所示:

myArray = [otherArray retain];
于 2010-03-22T09:15:27.963 回答
0

只是为了补充凯文的答案,在这种情况下,您还需要确保在为其分配新值之前释放 myArray 当前指向的任何现有对象,这意味着:

[myArray release];
myArray = [otherArray retain];

当你通过声明的属性访问你的类变量时,所有这些保留/释放内存的东西都会自动为你完成,让你的生活更轻松。

于 2010-03-22T12:30:57.167 回答