在我的應用程序中,我爲CoreData堆棧使用了MagicalRecord,並且出現了NSManagedObject的奇怪行爲。我在我的DB類中有這種方法,它從數據庫中提取Stuff實體的所有條目。我從另一個類調用這個方法,並且在這個getStuff方法中,我得到了正確的值,可以在下面的日誌語句中打印出來。將NSManagedObjects數組傳遞給另一個方法後,其中有空值
-(NSArray*) getStuff
{
NSManagedObjectContext * managedObjectContext = [NSManagedObjectContext MR_contextWithStoreCoordinator:self.psc];
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Stuff"];
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"idNumber" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObjects:sort, nil]];
NSError *error = nil;
NSArray *arr = [managedObjectContext executeFetchRequest:request error:&error];
for (Stuff *stuff in arr) {
NSLog(@"stuff fN: %@",stuff.idNumber);
}
if (arr)
return arr;
return [NSArray array];
}
但是,通過此方法返回到另一個類的數組包含所有這些對象中的空值。
// -- some othe class
// call DB to check if we have stuff there
NSArray* stuff = [database getStuff];
for (Stuff *stuff in stuff) {
NSLog(@"stuff fN: %@",stuff.idNumber);
}
有沒有人知道爲什麼會發生這種情況?任何形式的幫助都非常感謝!
這是真的很有幫助。解決我的問題,謝謝馬丁 – xrnd