0

我正在尝试将设备文档文件夹中的文件的文件路径存储在核心数据实体中,它可以正确插入,但是当我尝试使用路径属性上的谓词获取记录时,它会抛出异常。

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"'

属性正确存储在 Core Data DB 中。

要提取的代码。

    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
                               ];
4

2 回答 2

1

也许文件路径包含阻止正确解析的字符,例如空格。尝试这个:

[NSPredicate predicateWithFormat:@"filePath = '%@'", path]; 
于 2013-03-08T11:37:18.080 回答
1

NSPredicate 类参考中的示例对字符串使用双引号,例如

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

显示的错误包含一个不带引号的谓词 - 也许是问题的根源?

于 2013-03-08T13:41:53.923 回答