我注意到我很少使用属性,因为我很少需要在我的类之外访问我的对象的变量;)
所以我通常这样做:
NSMutableArray *myArray; // not a property !
我的问题是:即使我没有将 myArray 声明为属性,如果我这样做,iphone 是否会保留
myArray = arrayPassedToMe;
我想是的,但我只是想确认一下;)
欢迎任何想法!
戈泰
我注意到我很少使用属性,因为我很少需要在我的类之外访问我的对象的变量;)
所以我通常这样做:
NSMutableArray *myArray; // not a property !
我的问题是:即使我没有将 myArray 声明为属性,如果我这样做,iphone 是否会保留
myArray = arrayPassedToMe;
我想是的,但我只是想确认一下;)
欢迎任何想法!
戈泰
如果您不使用“保留”声明属性,则不会进行保留调用。通常最好使用属性访问器(在所有情况下,它都会使内存管理更加简单),但是您可以执行手动保留,如下所示:
myArray = [otherArray retain];
只是为了补充凯文的答案,在这种情况下,您还需要确保在为其分配新值之前释放 myArray 当前指向的任何现有对象,这意味着:
[myArray release];
myArray = [otherArray retain];
当你通过声明的属性访问你的类变量时,所有这些保留/释放内存的东西都会自动为你完成,让你的生活更轻松。