我爭奪明白我與核心數據和簡單讀取請求時所遇到的問題:核心數據讀取請求使用了大量的內存
我需要顯示一些記錄,我執行這些代碼
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:[NSEntityDescription entityForName:@"Venue"
inManagedObjectContext:self.managedObjectContext]];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"id_" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[sortDescriptor release];
sortDescriptor = nil;
[fetchRequest setSortDescriptors:sortDescriptors];
[sortDescriptors release];
sortDescriptors = nil;
[self.managedObjectContext executeFetchRequest:fetchRequest error:nil];
到目前爲止好,但在儀器我可以看到,裝載記錄之前,我的記憶爲9MB,事後跳轉到內存44MB(!),並仍然存在。但我想從內存中釋放所有記錄,因爲我不再需要它們了。我錯過了什麼?我認爲Core Data在他們不再需要的時候發佈了這些記錄。我試圖做一個for-cycle來發布每個ManagedObject,但它們已經是+1計數,這意味着它們即將發佈。
這是iOS和OSX? – Damien 2012-02-05 12:05:41
對不起,忘了提及iOS – DigitalVanilla 2012-02-05 12:50:12
我將iOS添加到標籤。 – 2012-02-05 13:25:36