2015-03-31 1 views
0

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Contacts length]:NSInvalidArgumentException lors de l'accès objet de données de base

J'aller chercher l'image de CoreData et évidente le format de l'image est BYTE, donc je convertir en image. J'utilise le code suivant:

NSFetchRequest * request = [[NSFetchRequest alloc] init]; 
[request setEntity:[NSEntityDescription entityForName:@"Contacts" 
           inManagedObjectContext:context]]; 

NSError * error = nil; 
NSArray * objects = [context executeFetchRequest:request error:&error]; 
NSData *data1= objects[0]; 

UIImage *image2 = [[UIImage alloc]initWithData:data1]; 

Que faire?

Répondre

0

vous pouvez utiliser les éléments suivants

NSManagedObjectContext *context = [self managedObjectContext]; 
NSFetchRequest * fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity1 = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:context]; 
[fetchRequest setEntity:entity1]; 
NSArray * array = [self.managedObjectContext executeFetchRequest:fetchRequest error:nil]; 
NSData * dataBytes = [[array objectAtIndex:0] imgPng]; 
image = [UIImage imageWithData:dataBytes]; 
+0

Aiden votre réponse est très utile. Merci –

1

[context executeFetchRequest:request error:&error]; retourne un tableau avec les instances de NSManagedObject ou sous-classes de NSManagedObject. Vous dites au compilateur que le tableau contient des instances de NSData, ce qui n'est pas le cas. D'où la méthode de sélection inconnue.

Si nous supposons que vous enregistrez les données d'image dans un attribut appelé imageData votre code ressemblerait à ceci:

NSArray * objects = [context executeFetchRequest:request error:&error]; 
NSAssert(objects, @"Can't fetch: %@", error); 
if ([objects count] > 0) { 
    NSManagedObject *object = objects[0]; 
    NSData *data = [object valueForKey:@"imageData"]; 
} 
+0

Merci Matthias Bauch. c'est fait. –

+0

+1 pour http://matthiasbauch.com/2013/05/26/stackoverflow-how-to-check-whether-a-string-contains-white-spaces/ – Shekhu