当字符串包含'在Cocoa Touch中时,NSPredicate错误

Dev*_*fly 3 objective-c nspredicate

我正在设置我的谓词的字符串,如下所示:

[NSString stringWithFormat:@"(name like '%@')",name]
Run Code Online (Sandbox Code Playgroud)

但如果名称包含'字符,例如名称是否"family's"崩溃.

我怎样才能解决这个问题?

NSA*_*ict 6

你不需要'in NSPredicate.它们正在自动插入.

试一试

[NSPredicate predicateWithFormat:@"(name like %@)",name];
Run Code Online (Sandbox Code Playgroud)

崩溃的原因是因为谓词值被中断了.如果你创建一个带有格式的字符串,就像在你的例子中一样,你最终会得到(像'family'这样的名字),这显然是行不通的.

如果你predicateWithFormat:另一方面使用,你可以让它自己处理.它会逃脱你的特殊角色.