NSFetchRequest возвращает правильное количество объектов, но каждый объект содержит нулевые атрибуты

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

  •  18-09-2019
  •  | 
  •  

Вопрос

Я не могу понять, почему это происходит.Я могу добавить что-то к контексту.Но когда я извлекаю объекты, он возвращает правильное количество объектов, но атрибуты объектов равны нулю.

Я добавляю 3 экземпляра с помощью этого кода:

+(BOOL)Добавить STOREWITHID:(NSNumber *)Идентификатор Широта: (NSNumber *)Широта Долгота: (NSNumber *)Имя долготы: (NSNumber *)имя {

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;

} Я получаю результат:2010-03-07 19:19:37.060 GamePouch_iPhone[11337:207] Название магазина - Starbucks (gdb) продолжить 2010-03-07 19:19:37.933 GamePouch_iPhone[11337:207] Название магазина - Dunkin Donuts (gdb) продолжить 2010-03-07 19:19:38.717 GamePouch_iPhone[11337:207] Название магазина - Krispy Kreme

Я подтвердил, что этот код посещался три раза, и ни один из атрибутов не равен нулю.

Затем, когда я пытаюсь извлечь его, я использую следующий код:

+(NSMutableArray *)Извлекать все объекты {

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;

}

Я получаю результат:2010-03-07 19:21:00.504 GamePouch_iPhone[11337:207] название магазина (null) (gdb) продолжить 2010-03-07 19:21:01.541 GamePouch_iPhone[11337:207] название магазина (null) (gdb) продолжить 2010-03-07 19:21:02.503 GamePouch_iPhone[11337:207] название магазина (null)

Большое спасибо за чтение.Любая помощь была бы высоко оценена.

Спасибо Бахтияр уддин

Это было полезно?

Решение

Я вижу, в чем проблема:Для NSManagedObjects мы должны использовать valueForKey

Я должен был использовать [tempStore valueForKey:@"Name"] вместо [Название tempStore]

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top