的分析功能告訴我,有一個在這裏mutableFetchResults
一個潛在的泄漏:當我解決這個潛在的泄漏與autorelease我的應用程序崩潰,爲什麼?
- (NSMutableArray *) getBookmarks
{
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Bookmark" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[sortDescriptors release];
[sortDescriptor release];
NSError *error;
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
[request release];
if (!mutableFetchResults) {
NSLog(@"Error with fetch: %@", error);
return nil;
}
return mutableFetchResults ;
}
喜歡這個工作,但有一個泄漏警告。
當我使用autorelease NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
我的應用程序崩潰沒有錯誤日誌。
我怎樣才能找到問題在這裏?
- (id)init
{
self = [super init];
if (self) {
coreDataManager = [[CoreDataManager alloc] initWithDelegate:self];
bookmarks = [coreDataManager getBookmarks];
}
return self;
}
getBookmarks
如何被調用?是否有被調用的另一個自動釋放池,例如來自UI事件創建的新線程? – bdowden不,我沒有創建另一個池,只是標準池。增加了getBookmaks調用。 – madmax