objective-c - 在 Cocoa Touch 中字符串包含 ' 时 NSPredicate 错误

标签 objective-c nspredicate

我正在这样设置谓词的字符串:

[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/

相关文章:

ios - 谓词不适用于 NSSet

ios - Swift 对象数组过滤

objective-c - iOS 上 PDF 文档的默认纸张大小和单位

objective-c - 将文件上传到服务器 - Objective C/Xcode/Mediawiki

ios - UIScrollView中的UIView不调整宽度

cocoa - 核心数据返回不正确的值(尽管几乎正确)

ios - NSPredicate 'The left hand side for an ALL or ANY operator must be either an NSArray or NSSet'

ios - 核心数据的UISearchBar性能问题

ios - 如何防止 AutoLayout 重置 View 框架?

c++ - 如何在Xcode项目中使用dlib face_recognition?