Iphone NSPredicate以问号崩溃

Iphone NSPredicate以问号崩溃,iphone,regex,ios,crash,nspredicate,Iphone,Regex,Ios,Crash,Nspredicate,我有一个NSPredicate,看起来像这样 NSPredicate *predicate = [NSPredicate predicateWithFormat : @"keyword MATCHES[c] %@", theKeyword]; 在哪里 theKeyword=@“ 谓词崩溃,出现以下异常 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't do regex

我有一个NSPredicate,看起来像这样

NSPredicate *predicate = [NSPredicate predicateWithFormat : @"keyword MATCHES[c] %@", theKeyword]; 
在哪里
theKeyword=@“

谓词崩溃,出现以下异常

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't do regex matching, reason: (Can't open pattern U_REGEX_RULE_SYNTAX (string D;rdz;oirnodzirngzdorngzdorngzdrjgnz@dorjn
Isdjfij
Fisdjfisj
Jsifjsijfs
Ifjifjs
Isjfidsj
Fjisjfi
, pattern ?, case 1, canon 2))'
有人知道为什么它不起作用吗?
感谢所有帮助>“我不熟悉
NSPredicate
,但是如果
应该是正则表达式,那么它是无效的。问号是一个量词,表示“上一个标记的零或一个实例”-并且没有可重复的标记。您希望您的正则表达式做什么


如果要匹配文字问号,则需要使用反斜杠(regex-literal:
\?
,regex-string:
\\?
)将其转义。

您是对的,“?”是一个正则表达式(ref:)。我正在尝试比较两个字符串,而“?”?应该是字符串而不是正则表达式。我试图双引号引用%@但这导致了我通常的情况(关键字只是一个字符串而不是“?”)不起作用…不知怎的,我在没有使用NSPredicate比较NSString的情况下解决了这个问题。这可能不是一个好办法,但它的工作。。。首先,我获取了所有NSManagedObject,并使用
[NSArray indexOfObjectPassingTest:
查找与关键字匹配的对象。非常感谢,Tim^^^^我将尝试一下!