2011-11-12 3 views
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' 

사람이 사용자가에서 내 응용 프로그램을 설치할 때이 충돌을 방지 도움에 어떤 아이디어가 있습니까을 앱 스토어?

감사

문은 배열이 비어있는 경우 아무 것도 표시하려고하지 않을 경우 내가 추가 한 후 문제가 수정되었습니다
+1

크래시에 대한 세부 정보와 배열에 개체를 배치하는 방법을 보여주는 코드를 제공하면 도움이됩니다. – timthetoolman

+0

@timthetoolman, 코드 및 오류를 추가했습니다. –

+0

코드에서 오류가 발생하는 위치를 나타내야합니다. 데이터가 없을 때만 오류가 발생하면 인덱스 : 0에 데이터가있을 것으로 예상되는 코드가 있습니다. –

답변

0

. 그런 다음 UIAlertView를 사용하여 사용자를 flipside로 안내합니다.

관련 문제