0
我正在努力與CoreData。我想取下列對象:NSManagedObject錯誤/無法獲取由NSManagedObject處理的'原始'對象
@interface Email : NSManagedObject {
}
@property (nonatomic, copy) NSString *email;
@property (nonatomic, copy) NSString *contact;
@end
..和把結果的NSMutableArray裏面,但NSString的內容(不NSManagedObjects!)。這是因爲我使用了json-framework,並且該引擎不允許NSManagedObjects被傳遞。
這些線取perfom從CoreData
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Emails" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setPropertiesToFetch:[NSArray arrayWithObject:@"email"]];
NSError *error = nil;
NSMutableArray *fetchedObjects = [[NSMutableArray alloc] init];
fetchedObjects= [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
flight.emails=fetchedObjects;
抓取的 '飛行' 對象被聲明如下:
@interface Flight : NSObject {
NSMutableArray *_emails;
}
@property (nonatomic, retain) NSMutableArray *emails;
有了這個代碼,我得到CoreData故障。我嘗試了一些其他的實現變體,但從未真正設法在flight.emails中使用NSString對象,但始終使用NSManagedObjects。我所嘗試的是在Email NSManagedObject中實現一個專用的getter函數,該函數複製提取的NSString並返回副本。
我知道這是一種常見問題,但是,我的研究並沒有導致這方面的解決方案。
謝謝, 彼得
備註:檢查是否有差錯情況應該總是通過檢查返回值來實現(在這種情況下:'如果(結果==無)...')和而不是通過檢查'error'變量。 (記錄在這裏:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ErrorHandlingCocoa/CreateCustomizeNSError/CreateCustomizeNSError.html#//apple_ref/doc/uid/TP40001806-CH204-SW1。) –
@MartinR有道理,謝謝。 –
非常感謝,利奧納丹,你的答案擊中了它。 –