2011-05-03 2 views
1

내 요청을 가져 오기위한 간단한 코드를 사용하고NSFetchRequest 원인 SIGABRT 또는 EXC_BAD_ACCESS

NSArray *fetchResults = [moc executeFetchRequest:request error:&error]; 

NSLog(@" i want show my result : %@",fetchResults); -> 원인 SIGABRT

난 그냥이 생성 후 내 영구 저장소에 사용하고 있다면, 오류가 있습니다.

추 신 : 저장소가 채우기와 요청 사이에 저장되었습니다.

하지만 앱을 닫고 다시 열면 (이 경우 저장소가 있음) 오류가 없습니다. 나는이 메시지를 볼 수있는 경우에

는 'NSException'

의 인스턴스를 던지는 후 호출 종료하지만 난이 예외에 액세스 할 수 없습니다.

내가 가져온 결과를 계산하면 좋은 숫자입니다. 정말 이상합니다.

도움 주셔서 감사합니다.

+0

좋아, 문제를 발견했습니다! 내 인구 코드에서 내 relationShip 중 하나는 autorelease로 삽입되었습니다. 죄송하지만 지금은 괜찮습니다. 코어 데이터에서이를 잊어 버렸습니다 (릴리스를 사용하지 않고 개체를 nil로 설정). – Pixman

+0

답변으로 추가하십시오. –

+0

괜찮 았어.하지만 나는 "새로운 사용자"이기 때문에 기다려야한다. – Pixman

답변

1

좋아, 문제를 발견했습니다!

채우기 코드에서 내 관계 중 하나는 자동 릴리스로 삽입되었습니다.

이것을 제거하면 이제 정상입니다.

이 좋은 해결책이 아니다 : 나는 핵심 데이터에이를 잊어 버린

NSManagedObject *relationEntity = [NSEntityDescription insertNewObjectForEntityForName:@"picture" inManagedObjectContext:moc]; 

(nil에 출시, 단지 설정 객체를 사용하지 마십시오

NSManagedObject *relationEntity = [[NSEntityDescription insertNewObjectForEntityForName:@"picture" inManagedObjectContext:moc] autorelease]; 

간단하게 오토 릴리즈 제거)!