Khi tôi cố gắng để lưu các bối cảnh của mô hình CoreData của tôi, tôi nhận được một lỗiCoreData thất bại trong việc tiết kiệm bối cảnh, nói rằng mối quan hệ là con số không - tuy nhiên nó chắc chắn được thiết lập
Unresolved error Error Domain=NSCocoaErrorDomain Code=1560 "The operation couldn’t be completed. (Cocoa error 1560.)" UserInfo=0x76924b0 {NSDetailedErrors=( "Error Domain=NSCocoaErrorDomain Code=1570 " The operation couldn\U2019t be completed. (Cocoa error 1570.)" UserInfo=0x768c410 {NSValidationErrorObject=<Posts: 0x7177990> (entity: Posts; id: 0x7177010 <x-coredata:///Posts/tEF7138E6-A968-45B7-95CF-116C2AA93D605> ; data: {\n " business_entity" = nil;\n "
created_at" = " 2012-01-21 03:31:30 +0000" ;\n " own_description" = " Roasted this morning- Panama Duncan Estate: A rose fragrance debuts flavors of pear, coconut and marshmallow with caramel throughout the cup." ;\n postsID = 4;\n " updated_at" = " 2012-01-21 03:31:30 +0000" ;\n}), NSValidationErrorKey=business_entity, NSLocalizedDescription=The operation couldn\U2019t be completed. (Cocoa error 1570.)}",
chính phần con người:
business_entity = nil;
NSValidationErrorKey=business_entity
Tuy nhiên khi tôi tạo của tôi "bài" đối tượng tôi đặt chúng sao cho:
// First try to find a business for the post
NSNumber* businessID = [NSNumber numberWithInteger: [(NSString*)[jsonInfo objectForKey:@"business_id"] integerValue]];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity: [NSEntityDescription entityForName:kCoreDataModelNameBusinesses inManagedObjectContext: self.managedObjectContext]];
[fetchRequest setPredicate: [NSPredicate predicateWithFormat:@"(businessesID == %i)", [businessID intValue]]];
NSError *error = nil;
NSArray *matchingManagedObjects = [__managedObjectContext executeFetchRequest:fetchRequest error:&error];
if(error) {
NSLog(@"Error-createNewPostsWithJsonInfo: Unresolved error %@, %@", error, [error userInfo]);
return;
}
// Check any results
if([matchingManagedObjects count] == 0) {
NSLog(@"Error-createNewPostsWithJsonInfo: Could not locate a matching businessId: %@ for postId:%@", businessID, (NSString*)[jsonInfo objectForKey:@"id"]);
}
// Check too many results
if([matchingManagedObjects count] > 1) {
NSLog(@"Error-createNewPostsWithJsonInfo: Too many bussinesses match businessId: %@ for postId:%@", businessID, (NSString*)[jsonInfo objectForKey:@"id"]);
}
// Final sanity check outputs fine!!
NSLog(@"Business entity %@", (Businesses*)[matchingManagedObjects objectAtIndex:0]);
// Finally create the post
Posts* newPosts = [NSEntityDescription
insertNewObjectForEntityForName:entityName inManagedObjectContext:self.managedObjectContext];
newPosts.created_at = [_dateFormater dateFromString: [jsonInfo objectForKey:@"created_at"] ];
newPosts.updated_at = [_dateFormater dateFromString: [jsonInfo objectForKey:@"updated_at"] ];
newPosts.own_description = [jsonInfo objectForKey:@"description"];
newPosts.postsID = [NSNumber numberWithInteger: [(NSString*)[jsonInfo objectForKey:@"id"] integerValue]];
[newPosts setBusiness_entity: (Businesses*)[matchingManagedObjects objectAtIndex:0] ];
Vì vậy, tôi biết business_entity đang được đặt và chính xác. Điều gì sẽ gây ra lỗi khi lưu ngữ cảnh trong kịch bản như vậy?
Dưới đây là mô hình nếu điều đó giúp:
là business_entity mối quan hệ hoặc thuộc tính> – jackslash
Đó là mối quan hệ - – Onedayitwillmake