【发布时间】:2010-07-20 03:48:35
【问题描述】:
我正在使用这个 a1 = [[NSMutableArray alloc] init];现在应该是发布a1的最佳方式
现在我在 dealloc() 中释放
我在 viewdidload() 中分配 a1 并在那里显示 10 张图像
【问题讨论】:
标签: iphone
我正在使用这个 a1 = [[NSMutableArray alloc] init];现在应该是发布a1的最佳方式
现在我在 dealloc() 中释放
我在 viewdidload() 中分配 a1 并在那里显示 10 张图像
【问题讨论】:
标签: iphone
一个基本的例子是这样的:
// get the party started
NSMutableArray *tmpArray = [[NSMutableArray alloc] init];
// as an example, just copy some user defaults into the mutable array
tmpArray = [[userDefaults objectForKey:@"UserDefaultsExample"] mutableCopy];
// do something here with tmpArray (i.e. if ([tmpArray count] == 0) //do something)
// once you are done with tmpArray, go ahead and release it
[tmpArray release];
对于您的情况,您希望在完成后释放数组(即,在viewDidLoad 的末尾,只要您真的完成了它,这可能是一个安全的选择)。如果你这样做,你不需要在你的 .h 文件中创建一个 NSMutableArray 对象,合成它并在 dealloc 中释放。相反,您只需像我在上面所做的那样创建一个临时的,并在完成显示其中的图像后释放它。
【讨论】:
mutableCopy 之类的便捷方法将对象放入自动释放池中,这样您的保留计数可能不会立即为零。您可能需要一些额外的阅读:cocoawithlove.com/2009/07/rules-to-avoid-retain-cycles.html 和 developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Conceptual/…