2013-08-30 5 views
0

코어 데이터에서 개체를 업데이트하려고했지만 다음 오류가 발생했습니다. 오류 : NSManagedObject 클래스에서 지정한 초기화 코드를 호출하지 못했습니다.

NSError *error; 
    NSArray *objects = [managedObjectContext executeFetchRequest:fetchRequest error:&error]; 
    NSLog(@"objects %@",objects); 


    // yourIdentifyingQualifier is unique. It just grabs the first object in the array. 
    AllChallenge *tempChallenge = [[managedObjectContext executeFetchRequest:fetchRequest error:&error] objectAtIndex:0]; 


    tempChallenge =[[AllChallenge alloc] init]; 
    NSLog(@"tempchallenge >>>>> %@",tempChallenge); 

    // update the object 

    tempChallenge.status = 1; 



    [self.managedObjectContext save:&error]; 

컴파일 후 나는 CoreData있어 NSManagedObject 클래스 'AllChallenge'에 지정 초기화를 호출하지 못했습니다. 어떤 도움을 주셔서 감사합니다.

+0

'에서 오는 objAllChallenge'는 무엇입니까? 'tempChallenge'라고 쓰고 싶습니까? –

+0

예, tempChallenge를 의미합니다. – yogwiz

+0

귀하의 코드에서 tempChallenge 또는 objAllChallenge를 사용하는 것이 문제입니다. 질문에 아닙니다. –

답변

1

당신이 다음 기존 개체를 업데이트 할 경우에 당신은 그것을 대체하지 말아야 새로 하나 할당 : 당신이 다음 개체를 만들려면

AllChallenge *tempChallenge = [[managedObjectContext executeFetchRequest:fetchRequest error:&error] objectAtIndex:0]; 
// tempChallenge =[[AllChallenge alloc] init]; // <-- REMOVE THIS LINE 
tempChallenge.status = 1; 
[self.managedObjectContext save:&error]; 

당신이를 사용해야합니다 지정된 초기화, 또는이 편리한 방법

AllChallenge *tempChallenge = [NSEntityDescription insertNewObjectForEntityForName:@"AllChallenge" inManagedObjectContext: managedObjectContext]; 
관련 문제