NSPredicate * thePredicate1= [NSPredicate predicateWithFormat: @"Title CONTAINS[cd] %@", searchTerm];
如果searchterm是一个空字符串,那么使用thePredicate1的搜索应该返回吗?
错误。
如果它为零,则会返回错误。
我的问题是我必须创建一个特例。因此,如果Title为空(或nil),那么我将不得不创建一个始终返回true的谓词。因为CONTAINS“”总是返回false。
我认为Contains @“”应该总是返回true。每个字符串都包含一个空字符串
他们遇到这个问题时会考虑什么?
答案 0 :(得分:3)
NSLog(@"%@", [NSPredicate predicateWithFormat:@"Title CONTAINS[cd] %@", @""]);
NSLog(@"%@", [NSPredicate predicateWithFormat:@"Title CONTAINS[cd] %@", nil]);
日志:
2011-06-18 17:53:44.037 EmptyFoundation[11247:903] Title CONTAINS[cd] ""
2011-06-18 17:53:44.040 EmptyFoundation[11247:903] Title CONTAINS[cd] nil
你的问题又是什么? searchTerm
不是对象吗?
答案 1 :(得分:1)
请注意,类似方法+[NSString stringWithFormat:]
的文档包含以下警告:
重要提示:提高 如果是格式,则为NSInvalidArgumentException 是零。