在核心数据中存储文件路径抛出异常
问题描述:
我想存储在核心数据实体的设备文档文件夹中的文件的文件路径,它正在正确插入,但是当我试图使用谓词获取记录时它引发的路径属性是一个例外。在核心数据中存储文件路径抛出异常
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
];
答
也许文件路径包含阻止正确解析的字符,如空格。试试这个:
[NSPredicate predicateWithFormat:@"filePath = '%@'", path];
答
NSPredicate类引用中的示例对字符串使用双引号,例如:
Simple comparisons, such as grade == "7" or firstName like "Shaffiq"
显示的错误包含一个没有引号的谓词 - 也许是问题的根源?