iOS 앱의 핵심 데이터에 문제가 있습니다.가져 오기 후 NSManagedObjects의 동적 속성이 null입니다.
첫째, 내 ManagedObject에 대한 코드 :
@interface MyBook : NSManagedObject
@property (retain, nonatomic) NSString *book_name;
@end
@implementation MyBook
@synthesize book_name;
@end
그리고 코드 샘플 :
NSFetchRequest *fr = [NSFetchRequest fetchRequestWithEntityName:@"MyBook"];
fr.predicate = [NSPredicate predicateWithFormat:@"book_name == %@", @"Something"];
NSArray *result = [s.managedObjectContext executeFetchRequest:fr error:&error];
MyBook *book = nil;
if (result.count) {
book = [result objectAtIndex:0];
NSLog(@"Updating old book: %@", book);
} else {
book = [NSEntityDescription insertNewObjectForEntityForName:@"Book"
inManagedObjectContext:s.managedObjectContext];
NSLog(@"Creating new book");
shelf.book_name = // some unique book name is set here
}
NSLog(@"result: %@", book.book_name);
기본적으로 코드 ...
- 시도 횟수에 책을 이름으로 찾아서 붙잡아 라.
- 책이 아직없는 경우 책을 만들고 책 이름을 설정하십시오.
- 그렇지 않으면 기존 책을 가져옵니다. 는
내가 겪고있어 이상한 것은이 책이 이미 존재하는 경우, 재산 book_name
가 null이다. 객체가 생성 된 경우 book_name
에는 전에 설정 한 문자열이 있습니다.
속성에 대한 액세스가 가져온 책 인스턴스에 오류를 일으키지 않는다고 생각합니다. 아마 [book valueForKey:@"book_name"]
이 작동하고 그 후에도 속성이 채워진 것입니다.
무엇이 여기에 있습니까? 코어 데이터가 속성에 액세스하고 있음을 알게되고 투명하게 데이터를 내부적으로 잡아낼 것으로 기대합니다.
당신에게