2012-04-15 3 views
2

가 : 핵심 데이터 객체로 생성 된 파일의 기본 방법 중 하나입니다CoreDataGeneratedAccessor 방법 오류 내가 메서드를 호출 할 때

- (void)removeObjectFromMediaAtIndex:(NSUInteger)idx; 

을, 내가 오류를 받고 있어요 unrecognized selector sent to instance 왜 이런 일이 일어날 지 아무도 몰라요?

+0

나머지 오류 메시지를 게시 할 수 있습니까? 선별기가 무엇인지 알면 단서가 생길 수 있습니다. – idz

답변

7

NSManagedObject 서브 클래스 인스턴스가 NSManagedObjectContext를 사용하여 만들어 졌는지 직접 확인하지 않았는지 확인하십시오. 속성 대신 @synthesize를 사용하는 대신 NSManagedObject 하위 클래스는 @dynamic 키워드를 활용합니다.이 키워드는 런타임에 액세스자가 생성된다는 것을 나타냅니다.이 경우에는 NSManagedObjectContext가 사용됩니다. 그들은 alloc instance와 같은 것을 사용하여 객체 인스턴스를 생성한다면 거기에 없을 것입니다;

+0

이것에 대해 자세히 설명해 주시겠습니까? 예를 보여 주시겠습니까? 나는 '[[ENTITY alloc] initWithEntity : [self getEntityDescription : [ENTITY className]]을 사용합니다. insertIntoManagedObjectContext : self.managedObjectContext]; ' 하지만이 방법은 잘못된 것 같습니다. –

+0

당신이하고있는 일은 제가 잘못해서 말한 방법과 틀린 것이 아닙니다. –

0

클래스를 변경하지 않고 데이터 모델을 변경 한 것처럼 들리거나 그 반대의 경우도 마찬가지입니다. 아니면 팀원 중 한 명이 그랬습니다 (우리 팀은이 위험에 대해 빨리 알게되었습니다). 또 다른 가능성은 사용하는 참조가 실제로 생각하는 클래스가 아니라는 것입니다. 때로는 객체를 과량 보급하면 다른 객체가 이전 메모리 공간을 차지하지만 올바른 클래스가되지 않습니다.

그러나이 방법은 기본 방법처럼 보이지 않습니다. 내가 보던 익숙한 기본 메소드는 객체 추가, 객체 제거, 새 NSSet으로 변경, 그리고 머리 위로부터 기억할 수없는 것입니다. 그러나 NSArray를 대신 사용하는 CoreData 객체가 있다면 말이 될 것입니다.

관련 문제