0
코어 데이터를 사용하는 앱을 만들고 있습니다. 필자는 주 화면에서 사용할 레코드를 사용자가 생성하는 플립 사이드 (flip-side)를 사용합니다. MainViewController 내 ViewWillAppear에서 핵심 데이터를 가져옵니다. 문제는 새 장치에서 응용 프로그램을 실행할 때 배열에 데이터가 없다는 오류를 반환합니다. 다음과 같이배열에 데이터가 없음
나는 배열을 채울 :
/*
Fetch existing events.
Create a fetch request; find the Event entity and assign it to the request; add a sort descriptor; then execute the fetch.
*/
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Child" inManagedObjectContext:_managedObjectContext];
[request setEntity:entity];
// Order the events by creation date, most recent first.
NSSortDescriptor *nameDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO];
NSSortDescriptor *prizeDescriptor = [[NSSortDescriptor alloc] initWithKey:@"prize" ascending:NO];
NSSortDescriptor *neededDescriptor = [[NSSortDescriptor alloc] initWithKey:@"marblesneeded" ascending:NO];
NSSortDescriptor *colorDescriptor = [[NSSortDescriptor alloc] initWithKey:@"color" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:nameDescriptor,prizeDescriptor,neededDescriptor,colorDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[nameDescriptor release];
[colorDescriptor release];
[prizeDescriptor release];
[neededDescriptor release];
[sortDescriptors release];
// Execute the fetch -- create a copy of the result.
NSError *error = nil;
records = [[self.managedObjectContext executeFetchRequest:request error:&error] retain];
if ([records count] == 0) {
recordsempty = YES;
}
[request release];
을 그리고 난 다음 오류 얻을 :
-[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array'
사람이 사용자가에서 내 응용 프로그램을 설치할 때이 충돌을 방지 도움에 어떤 아이디어가 있습니까을 앱 스토어?
감사
문은 배열이 비어있는 경우 아무 것도 표시하려고하지 않을 경우 내가 추가 한 후 문제가 수정되었습니다
크래시에 대한 세부 정보와 배열에 개체를 배치하는 방법을 보여주는 코드를 제공하면 도움이됩니다. – timthetoolman
@timthetoolman, 코드 및 오류를 추가했습니다. –
코드에서 오류가 발생하는 위치를 나타내야합니다. 데이터가 없을 때만 오류가 발생하면 인덱스 : 0에 데이터가있을 것으로 예상되는 코드가 있습니다. –