在针对kMDItemPath的搜索中没有导致Spotlight的结果

Mig*_*nal 3 cocoa osx-leopard spotlight objective-c

我正在尝试创建一个Spotlight查询,在文件的路径中搜索一个字符串(我希望它匹配文件的名称或包含的任何文件夹的名称).

NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat: @"kMDItemPath like[wcd] $SEARCH";
[query setPredicate: 
    [predicateTemplate predicateWithSubstitutionVariables:
        [NSDictionary dictionaryWithObject:searchingFor forKey:@"SEARCH"]
    ]
];
[query startQuery];
Run Code Online (Sandbox Code Playgroud)

这总是返回0结果,即使是以下结果:

NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat: @"kMDItemDisplayName in[wcd] $SEARCH";
Run Code Online (Sandbox Code Playgroud)

返回1个或多个结果.我在MacOS X 10.5.8上测试它.

kpe*_*yua 9

说明文件:

kMDItemPath

完整文件的路径.可以检索此属性的此值,但不能在查询中使用或对搜索结果进行排序.

链接

这意味着该属性kMDItemPath只能与MDItem或NSMetadataItem一起使用,以检索已找到项目的路径.您不能在指定用于查找文件的查询谓词中将其与MDQuery或NSMetadataQuery一起使用.