Iphone NSPredicate以问号崩溃
我有一个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 *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^^^^我将尝试一下!