【问题标题】:NSPredicate predicateWithFormat for NSMetaDataQuery in iOSiOS 中 NSMetaDataQuery 的 NSPredicate predicateWithFormat
【发布时间】:2013-09-02 17:12:49
【问题描述】:

我需要将我的自定义字符串附加到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 "%@*"

占位符 %@ 未正确附加。它只显示%@ 符号。

我该怎么做?

【问题讨论】:

标签: ios nspredicate nsmetadataquery


【解决方案1】:

引号内的格式参数不会被predicateWithFormat扩展, 因此@"%K like '%@*'" 不起作用。

这应该可行:

NSString *pattern = [NSString stringWithFormat:@"%@*", whereAreYou];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"%K LIKE %@", NSMetadataItemFSNameKey, pattern];

【讨论】:

    猜你喜欢
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多