Joh*_*ith 1 iphone objective-c nspredicate
我在搜索框中输入关键字时出现此错误:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'无法解析格式字符串'(标题CONTAINS [c]'hj'"
我输入任何字符串(在这种情况下为'hj')后跟撇号(或包含撇号).没有撇号 - 没有错误.
这就是我做的:
(void)filter:(NSString*)keyword{
NSString* predicateString = [NSString stringWithFormat:@"(title CONTAINS[c] '%@')", keyword];
NSPredicate *predicate = [NSPredicate predicateWithFormat:predicateString];
self.filteredArray = [self.initialArray filteredArrayUsingPredicate:predicate];
}
Run Code Online (Sandbox Code Playgroud)
正如我所说,如果关键字中不包含撇号字符,则代码可以正常工作.
Ale*_*kov 11
萨瓦,试试这个:
(void)filter:(NSString*)keyword{
NSString *keywordWithBackslashedApostrophes = [keyword stringByReplacingOccurrencesOfString:@"'" withString:@"\\'"];
NSString* predicateString = [NSString stringWithFormat:@"title CONTAINS[c] '%@'", keywordWithBackslashedApostrophes];
NSPredicate *predicate = [NSPredicate predicateWithFormat:predicateString];
self.filteredArray = [self.initialArray filteredArrayUsingPredicate:predicate];
}
Run Code Online (Sandbox Code Playgroud)
与代码的主要区别在于关键字中的撇号由反斜杠 - 撇号替换.
归档时间: |
|
查看次数: |
4615 次 |
最近记录: |