2010-03-09 13 views
1

Je n'arrive pas à comprendre pourquoi cela se produit. Je peux ajouter au contexte. Mais quand je récupère les objets, il renvoie le nombre correct d'objets mais les attributs des objets sont null.NSFetchRequest renvoie le nombre correct d'objets, mais chaque objet contient des attributs nil

J'ajoute 3 cas avec ce code:

+ (BOOL) addStoreWithID: (NSNumber *) ID Latitude: (NSNumber *) Latitude Longitude: (NSNumber *) longitude Nom: (NSString *) Nom {

Stores *store = (Stores *)[NSEntityDescription 
        insertNewObjectForEntityForName:@"Stores" 
        inManagedObjectContext:[[SharedResources instance] managedObjectContext]]; 

store.ID = ID; 
store.Latitude = latitude; 
store.Longitude = longitude; 
store.Name = name; 
NSError *error; 
if(![[[SharedResources instance] managedObjectContext] save:&error]) 
{ 
    //Handle the error 
    return NO; 
} 
return YES; 

} Je obtenir le résultat: 2010-03-07 19: 19: 37,060 GamePouch_iPhone [11337: 207] nom de magasin est Starbucks (gdb) continuer 2010-03-07 19:19 : 37.933 GamePouch_iPhone [11337: 207] Le nom du magasin est Dunkin Donuts (gdb) continuer 2010-03-07 19: 19: 38.717 GamePouch_iPhone [11337: 207] Le nom du magasin est Krispy Kreme

J'ai confirmé que ce code est visité trois fois et qu'aucun des attributs est nul.

Puis lorsque je tente de le récupérer, j'utiliser le code suivant:

+ (NSMutableArray *) fetchAllObjects {

NSFetchRequest *request; 
request = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Stores" inManagedObjectContext:[[SharedResources instance] managedObjectContext]]; 
[request setEntity:entity]; 
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"ID" ascending:YES]; 
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 
[request setSortDescriptors:sortDescriptors]; 
NSError *error; 
NSMutableArray *array = [[[SharedResources instance] managedObjectContext] executeFetchRequest:request error:&error]; 
[request release]; 
[sortDescriptor release]; 
[sortDescriptors release]; 
for(int i=0;i<3;i++) 
{ 
    Stores *tempStore = (Stores *)[array objectAtIndex:i]; 
    NSLog(@"store name is %@",[tempStore Name]); 
} 
return array; 

}

Je reçois le résultat: 2010- 03-07 19: 21: 00.504 GamePouch_iPhone [11337: 207] nom du magasin est (null) (gdb) continuer 2010-03-07 19: 21: 01.541 GamePouch_iPhone [11337: 207] nom du magasin est (null) (gdb) continuer 2010-03-07 19: 21: 02.503 GamePouch_iPhone [11337: 207] nom du magasin est (null)

Merci beaucoup pour la lecture. Toute aide serait grandement appréciée.

Merci Bakhtiyar Uddin

Répondre

0

Je vois ce que le problème est: Pour NSManagedObjects, nous devons utiliser valueForKey

Je l'ai utilisé [tempStore valueForKey: @ "Nom"] au lieu de [tempStore Name]