코어 데이터에서 수행 한 가져 오기 결과에서 NSManagedObject 유형의 NSArray 객체가 반환됩니다. NSArray의 내용을 콘솔에 인쇄하여 쿼리 후에이를 확인할 수 있으므로 NSArray에 객체가 포함되어 있습니다. 내 문제는 그러나 내가 쿼리에서 검색 한 엔터티 형식의 개체를 사용하여이 배열을 통해 빠른 열거 형을 수행 할 수 없다는 것입니다. 내가 런타임에 무엇입니까 정확한 오류는 다음iOS의 코어 데이터에서 엔티티의 NSArray를 통해 빠른 열거를 수행 할 때 런타임 오류가 발생합니다.
for (MyEntityType *entityType in self.entityArray) {
...
}
: 나는 심지어 루프에 대한 조건으로 나누기 때문에 실행하지 않고 사용하고 루프
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[My_Entity_Name countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0xa9f0090'
내 실제 내가 배열 self.entityArray를 채우는 데 사용하는 명령을 가져 오는 것은 :
:self.entityArray = [[Singleton sharedInstance] retrieveEntities:self.mainEntity.relationshipEntity.relationshipEntityId];
차례로,이 내 retrieveEntity 방법과 같은 방법입니다
- (NSArray *)retrieveEntities:(NSNumber *)relationshipEntityAttributeId {
NSManagedObjectContext *context = [[DataEngine sharedInstance] managedObjectContext];
NSError *error;
// Create fetch request
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:ENTITY_NAME inManagedObjectContext:context];
[fetchRequest setEntity:entity];
// Create predicate
NSPredicate *pred = [NSPredicate predicateWithFormat:@"relationshipEntity.relationshipAttributeId == %@", relationshipEntityAttributeId];
[fetchRequest setPredicate:pred];
NSArray *items = [context executeFetchRequest:fetchRequest error:&error];
if ([items count]>0) {
return items[0];
} else {
return nil;
}
}
위의 오류가 발생하는 이유는 누구나 볼 수 있습니까?
미리 답변 해 주신 모든 분께 감사드립니다.
추가 된 코드는 우리에게 알려지지 않은 retrieveEntity 메소드를 사용하기 때문에 실제로 도움이되지 않습니다 (글쎄, 적어도 나에게). –
추가 방법을 포함하도록 코드를 업데이트했습니다. – syedfa