这样做的好处是什么:
NSArray *array = [[NSArray alloc] initWithObjects:@"Year", "@Capital", ..., nil];
self.hintArray = array;
[array release];
而不是像这样直接分配给我的类变量:
self.hintArray = [[NSArray alloc] initWithObjects:@"Year", "@Capital", ..., nil];
为什么我们要创建一个临时本地对象然后释放它而不是仅仅分配给我们的类变量?
最佳答案
其他人已经指出了内存问题,但这是一步完成的最佳方法:
self.hintArray = [NSArray arrayWithObjects:@"Year", "@Capital", ..., nil];
方便的类方法+arrayWithObjects
返回一个已经被自动释放的数组,所以你根本不需要再担心它了。您的属性(property)访问者将负责复制或保留它。 (当然,假设您的 hintArray
属性设置为 retain
或 copy
属性)。
关于objective-c - 了解 cocoa 内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1368914/