最近兩天我花費在尋找內存泄漏上。我已閱讀文檔並在互聯網上搜索了很好的信息(例如Owen Goss「查找並修復iOS應用程序中的內存泄漏」),但仍有許多謎團需要解決。即使每次發佈alloc都會發生內存泄漏
例如,這段代碼一次又一次地在儀器中亮起。我盡我所能,但無法修復。
- (void) updateUserDefaults
{
// alloc temporary Array for object´s positions
NSMutableArray *tArray = [[NSMutableArray alloc] init];
// store locations of objects
for (int i=0; i<[originalOrigins count]; ++i) {
CGPoint foo = [self.view viewWithTag:100+i].center;
NSString *moo = NSStringFromCGPoint(foo);
[tArray addObject:moo];
[moo release]; //?
}
// retrieve all stored positions for all objects
NSMutableArray *zettelPannedOrigins = [[[[NSUserDefaults standardUserDefaults] objectForKey:@"zettelPannedOrigins"] mutableCopy] retain];
// replace with objects from this level
[zettelPannedOrigins replaceObjectAtIndex:zettelAtIndexInTonebank withObject:tArray];
// save
[[NSUserDefaults standardUserDefaults] setObject:zettelPannedOrigins forKey:@"zettelPannedOrigins"];
[[NSUserDefaults standardUserDefaults] synchronize];
// clean up memory
[tArray release];
[zettelPannedOrigins release]; //?
}
我認爲其他人也可能會感興趣的是,我釋放我分配的內容。但它仍然在泄漏。這我不能回答文件。或者我可以嗎?
勿放裏面loop--你不擁有該引用「哞哞」。 –