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