我正在这样设置谓词的字符串:
[NSString stringWithFormat:@"(name like '%@')",name]
但如果名称包含 '
个字符,例如如果名称是 "family's"
它会崩溃。
我该如何解决这个问题?
最佳答案
您不需要 NSPredicate
中的 '。它们被自动插入。
试试看
[NSPredicate predicateWithFormat:@"(name like %@)",name];
这个崩溃的原因是因为谓词值被打断了。 如果您创建一个带有格式的字符串,就像在您的示例中一样,您将以 (name like 'family's) 结尾,这显然是行不通的。
另一方面,如果您使用 predicateWithFormat:
,则可以让它自己处理。它会转义你的特殊字符。
关于objective-c - 在 Cocoa Touch 中字符串包含 ' 时 NSPredicate 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14024081/