我想在應用程序中使用CoreSpotlight
API,我有plist文件,其上有幾個項目,例如動物的名字。所以我需要設置title
字符串等於這些對象的on,例如,如果用戶搜索Lion,線名和例如其功能出現在聚光燈下。這裏是我的代碼:在CSSararchableItemAttributeSet中設置標題屬性從NSarray
- (void)setupCoreSpotlightSearch
{
CSSearchableItemAttributeSet *attibuteSet = [[CSSearchableItemAttributeSet alloc] initWithItemContentType:(__bridge NSString *)kUTTypeImage];
NSURL *url = [[NSBundle mainBundle] URLForResource:@"animals" withExtension:@"plist"];
NSArray *playDictionariesArray = [[NSArray alloc ] initWithContentsOfURL:url];
NSString *getNames = [NSString stringWithFormat:@"%@",playDictionariesArray];
NSLog(@"%@",getNames) ;
attibuteSet.title =getNames;
attibuteSet.contentDescription = @"blah blah ";
CSSearchableItem *item = [[CSSearchableItem alloc] initWithUniqueIdentifier:@"app name"
domainIdentifier:@"com.compont.appname"
attributeSet:attibuteSet];
if (item) {
[[CSSearchableIndex defaultSearchableIndex] indexSearchableItems:@[item] completionHandler:^(NSError * _Nullable error) {
if (!error) {
NSLog(@"Search item indexed");
}
}];
}
}
問題是getNames
返回所有的名字!我怎麼能過濾它當用戶搜索一個特定的單詞從animals.plist
謝謝。
你爲什麼要移除'attibuteSet.title'?這是我的主要問題,必須有一個值 –
playDictionariesArray將包含所有名稱的列表。所以你可以將title設置爲'attributeSet.title = object'。你可以檢查編輯。 –
我將對象改爲'for(NSString * name in playDictionariesArray)'並設置 'attributeSet.title = name',但問題只是我的plist文件的最後一項是可搜索的,它是'鳥類'我有很多其他的動物! –