2011-11-12 8 views
0

Je crée une application qui utilise des données de base. J'ai un revers dans lequel l'utilisateur crée les enregistrements qui doivent être utilisés dans la vue principale. Je récupère les données de base dans mon ViewWillAppear dans le MainViewController. Le problème se pose lorsque je lance l'application sur un nouveau périphérique, il renvoie l'erreur qu'il n'y a pas de données dans le tableau.No Data In Array

Je remplir le tableau comme suit:

/* 
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]; 

Et je reçois l'erreur suivante:

-[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array' 

Est-ce que quelqu'un a des idées sur l'aide à prévenir cet accident lorsqu'un utilisateur installe mon application de la Magasin d'applications?

Merci

+1

il serait utile si vous avez donné des détails sur le crash ainsi que du code qui montre comment vous placez des objets dans le tableau. – timthetoolman

+0

@timthetoolman, j'ai ajouté le code et les erreurs. –

+0

Vous devez indiquer où dans le code vous obtenez l'erreur. Si vous obtenez seulement l'erreur quand il n'y a aucune donnée, alors quelque part vous avez du code qui s'attend à ce qu'il y ait des données à l'index: 0. –

Répondre

0

Le problème a été résolu après avoir ajouté une instruction if pour essayer de ne pas afficher quoi que ce soit si le tableau est vide. Ensuite, j'ai utilisé un UIAlertView pour diriger l'utilisateur vers le flipside.