【发布时间】:2011-09-02 01:42:24
【问题描述】:
一个初学者的问题:我有一个将数据放入 MutableArray 的方法。潜在地,这个方法可以被多次调用,我有点担心它会泄漏内存,因为我每次调用它时都在分配数组:
indexContent = [[NSMutableArray alloc] init];
int numberOfEntries = [noteBookContent count]/3;
for (int k=0; k < numberOfEntries; k++) {
IndexItem *newItem = [[IndexItem alloc] init];
newItem.itemTitle = [noteBookContent objectAtIndex:(k*3)];
newItem.itemPage = k;
if (![[noteBookContent objectAtIndex:(k*3)] isEqualToString:@""]) {
[indexContent addObject:newItem];
}
[newItem release];
}
如果indexContent = [[NSMutableArray alloc] init]; 被多次调用,实际会发生什么?如果它很糟糕,我该如何防止这种情况发生?例如,我应该在 viewDidLoad 中调用它吗?但是,如果我尝试进行“延迟加载”,即仅在我真的需要时才分配 indexContent,我该怎么做?有没有办法检查它是否已经分配?
如果这一切都很明显,我很抱歉,但我正在努力解决这个问题。也许这是一个我还没有完全掌握的基本概念。谢谢!
编辑:
我有
@property (nonatomic, 保留) NSMutableArray *indexContent; 在我的标题中
【问题讨论】:
标签: iphone objective-c cocoa-touch memory-management