сохранение данных ядра iphone не работает - PullRequest
1 голос
/ 15 июля 2010

Я пытаюсь сохранить список Device классов (пользовательский класс) с использованием Core Data и получить его. Но после того, как я его сохранил, мой запрос, который ОЧЕНЬ прост, не возвращает никаких записей.

Мой вызов для сохранения записей всегда возвращает ДА ​​и без ошибок:

BOOL resultOfSave = [managedObjectContext save:&err];

Мой предикат для поиска по свойству userLogin выглядит так:

- (NSArray *) devicesForUser:(NSString *)username 
{
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Device" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userLogin = %@", username];
[request setPredicate:predicate];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"macAddress" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[sortDescriptors release];
[sortDescriptor release];

NSError *error = nil;
NSArray *fetchResults = [managedObjectContext executeFetchRequest:request error:&error];
if (fetchResults == nil) {
    // Handle the error.
    NSLog(@"ERROR: nil fetch result array");
}

[request release];
NSLog(@"devicesForUser [%@] count %d", username, [fetchResults count]);
return fetchResults;    
}

но я всегда получаю нулевые результаты, если я избавляюсь от предиката, я получаю все объекты, и если я перебираю их, я вижу, что для свойства userLogin хотя бы для одного объекта установлено значение username Я прохожу в ...

У кого-нибудь была такая проблема ???

Спасибо за любую помощь, которую вы можете оказать

Mark

1 Ответ

2 голосов
/ 15 июля 2010

В вашем предикате измените:

@"userLogin = %@"

... чтобы:

@"userLogin == %@"
...