在核心数据中存储文件路径会引发异常
Posted
技术标签:
【中文标题】在核心数据中存储文件路径会引发异常【英文标题】:Storing file path in core data throws exception 【发布时间】:2013-03-08 11:22:33 【问题描述】:我正在尝试将设备文档文件夹中的文件的文件路径存储在核心数据实体中,它可以正确插入,但是当我尝试使用路径属性上的谓词获取记录时,它会抛出异常.
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
];
【问题讨论】:
【参考方案1】:可能文件路径包含妨碍正确解析的字符,例如空格。试试这个:
[NSPredicate predicateWithFormat:@"filePath = '%@'", path];
【讨论】:
【参考方案2】:NSPredicate 类参考中的示例对字符串使用双引号,例如
Simple comparisons, such as grade == "7" or firstName like "Shaffiq"
显示的错误包含一个不带引号的谓词 - 可能是问题的根源?
【讨论】:
以上是关于在核心数据中存储文件路径会引发异常的主要内容,如果未能解决你的问题,请参考以下文章
对于路径,“getNumberOfTransporters”函数会引发异常