NSFetchRequest retourne le nombre correct d'objets, mais chaque objet contient des attributs nil

StackOverflow https://stackoverflow.com/questions/2406021

  •  18-09-2019
  •  | 
  •  

Question

Je ne peux pas comprendre pourquoi ce qui se passe. Je peux ajouter au contexte. Mais lorsque je récupère les objets, il retourne le nombre correct d'objets, mais les attributs des objets sont nuls.

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 reçois 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] nom de magasin est Dunkin Donuts (Gdb) continuer 2010-03-07 19: 19: 38,717 GamePouch_iPhone [11337: 207] nom de magasin est Krispy Kreme

Je confirme que ce code est visité trois fois et aucun des attributs sont nuls.

Alors lorsque je tente de le récupérer, j'utilise 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: 07/03/2010 19: 21: 00,504 GamePouch_iPhone [11337: 207] Nom du magasin est (null) (Gdb) continuer 07/03/2010 19: 21: 01,541 GamePouch_iPhone [11337: 207] Nom du magasin est (null) (Gdb) continuer 07/03/2010 19: 21: 02,503 GamePouch_iPhone [11337: 207] Nom du magasin est (null)

Merci beaucoup pour la lecture. Toute aide serait très appréciée.

Merci Bakhtiyar Uddin

Était-ce utile?

La solution

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

Je aurais dû [TempStore valueForKey: @ "Nom"] au lieu de [TempStore Nom]

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top