2011-02-26 4 views
0

내 모델에 엔티티 (A, B)가 2 개 있습니다. 그들은 역방향 일대일 관계를 가지고 있습니다 : A < ----> B.코어 데이터에서 1 대 1 관계 값을 설정하면 인식 할 수없는 셀렉터가 인스턴스 오류로 전송됨

NSManagedObject *moA = NSEntityDescription insertNewObjectForEntityForName:@"A" inManagedObjectContext:managedObjectContext];

NSManagedObject *moB = NSEntityDescription insertNewObjectForEntityForName:@"B" inManagedObjectContext:managedObjectContext];

[moA setValue:@"http://www.apple.com" forKey:@"url"]; 
[moB setValue:@"Apple inc." forKey:@"title"]; 

// set reverse relationship

[moA setValue:moB forKey:'relationToB'];

: 여기

내가 핵심 데이터에 새로운 레코드를 추가하는 방법입니다 이 코드를 실행 한 후

, 내가 얻을 오류 :

인식 할 수없는 선택기 인스턴스에 전송

답변

0

이 줄 :

[moA setValue:moB forKey:'relationToB']; 
은 ...해야한다 :

[moA setValue:moB forKey:@"relationToB"]; 

원본에서는 사용자가 C 문자열 리터럴 NSString 개체 대신 키로 전달하십시오. 키 - 값 코딩에서, 키의 이름은 메소드 이름 (셀렉터)으로 변환된다. @"relationToB"setRelationToB:

의 selector로 변환됩니다. 그러나 C 문자열 리터럴은 개체가 아니라 오류를 생성하는 횡설수설 선택기 이름으로 변환되는 메모리 범위의 주소입니다.

관련 문제