2013-03-08 2 views
0

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

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the 
format string "filePath==/Users/****/Library/Application Support/iPhone Simulator/5.1/Applications 
/8C1B07FD-E372-4CD8-9A02-FDA321ECE629/Documents"' 

Атрибуты должным образом хранятся в базе данных данных ядра.

Код для извлечения.

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
    fetchRequest.predicate=[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"filePath==%@",Path]]; 
    NSSortDescriptor *sortDescriptor=[NSSortDescriptor sortDescriptorWithKey:@"fileName" ascending:YES]; 
    fetchRequest.sortDescriptors=[NSArray arrayWithObject:sortDescriptor]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"File" 
               inManagedObjectContext:self.managedObjectContext]; 
    [fetchRequest setEntity:entity]; 

    NSArray *fetchedObjects = [self.managedObjectContext 
           executeFetchRequest:fetchRequest error:nil 
           ]; 

ответ

1

Возможно, путь к файлу содержит символы, такие как пробелы, которые препятствуют правильному анализу. Попробуйте следующее:

[NSPredicate predicateWithFormat:@"filePath = '%@'", path]; 
1

Примеры в описании класса NSPredicate используют двойные кавычки для строк, например.

Simple comparisons, such as grade == "7" or firstName like "Shaffiq" 

Показанная ошибка содержит предикат без кавычек - возможно, источник проблемы?

Смежные вопросы