我需要将自定义字符串附加到NSPredicate
。
所以我写了以下代码。
self.query = [[NSMetadataQuery alloc] init];
[self.query setSearchScopes: [NSArray arrayWithObject:NSMetadataQueryUbiquitousDocumentsScope]];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"%K like '%@*'",NSMetadataItemFSNameKey,whereAreYou];
NSLog(@"%@",pred.description);
[self.query setPredicate:pred];
但是当我测试它时,它只返回以下值。
kMDItemFSName LIKE "%@*"
占位符%@
未正确追加。它只显示%@
符号。
我该怎么做?
答案 0 :(得分:4)
引号内的格式参数不会被predicateWithFormat
扩展,
因此@"%K like '%@*'"
不起作用。
这应该有效:
NSString *pattern = [NSString stringWithFormat:@"%@*", whereAreYou];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"%K LIKE %@", NSMetadataItemFSNameKey, pattern];