2012-01-24 13 views
8

, ben bir hata alırsınız ayarlanırCoreData ilişki nil olduğunu söyleyerek bağlamı kaydetmek için başarısız - ancak kesinlikle benim CoreData modelinin bağlamı kaydetmeye çalıştığınızda

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.)}",

Anahtar parçası olmak:

: Ben nesnesi benim "Mesajlar" oluştururken

business_entity = nil;
NSValidationErrorKey=business_entity

Ancak onları öyle ki set 210

// 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] ]; 

Bu yüzden business_entity'nin ayarlandığını biliyorum ve doğru. Böyle bir senaryoda bağlamı kaydederken bir hataya neden olur? Eğer yardımcı olur

İşte modeli:

enter image description here enter image description here

+0

is iş_entity ile bir ilişki veya bir özellik> – jackslash

+0

Bu bir ilişki - – Onedayitwillmake

cevap

6

Örtmek herkes bu sorunun rastlar, hata ben coredatamodel ilişkiyi batıyordu şekilde oldu.

Bu görüntüler aksi takdirde sen

enter image description here enter image description here

için dinamik değişken kümesi oluşturmaz i can daha iyi açıklamak, ancak çoğa sahibi varlık olduğu gibi ilişkileri ayarlamak emin olun
İlgili konular