ios – 在NSUserActivity上CSSearchableIttributeSet应该使用哪些属性?

我在我的网站上添加了Web Markup,因此当用户在iOS 9中搜索时,项目将显示在Spotlight搜索结果中.用户可以浏览应用程序中的相同项目,因此我想创建NSUserActivity对象,当用户浏览项目时链接到Web内容.

现在,NSUserActivity有一个contentAttributeSet属性,我将用它来将缩略图照片附加到活动中. CSSearchableItemAttributeSet有一些NSUserActivity也有的属性,所以我不确定应该实现哪一个,或者我应该为两者指定相同的数据.我是否设置了NSUserActivity的标题以及CSSearchableItemAttributeSet上的标题,或者只设置了一个或另一个?与关键字相同,也是两者的属性.

NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:@“com.domain.appname-something"];
activity.title = @“My Title";
activity.keywords = [NSSet setWithArray:@[@“one",@“two",@“three"]];
activity.userInfo = @{@“id": @“12345"};
activity.requiredUserInfoKeys = [NSSet setWithArray:@[@“id"]];
activity.eligibleForSearch = YES;
activity.eligibleForPublicIndexing = YES;
activity.webpageURL = [NSURL URLWithString:@"https://someurl.com"];

//QUESTION: Do I need to duplicate title and keywords here:
CSSearchableItemAttributeSet *contentAttributeSet = [[CSSearchableItemAttributeSet alloc] initWithItemContentType:(Nsstring *)kUTTypeImage];
contentAttributeSet.title = activity.title;
contentAttributeSet.displayName = activity.title;
contentAttributeSet.keywords = [activity.keywords allObjects];
contentAttributeSet.contentDescription = @“My Description Here";
contentAttributeSet.thumbnailData = [self generateImage];

activity.contentAttributeSet = contentAttributeSet;

解决方法

如果指定了NSUserActivity和CSSearchableItemAttributeSet的title属性,那么

>项目可通过两个标题进行搜索.
>搜索结果将具有NSUserActivity实例中指定的标题.

如果指定了NSUserActivity和CSSearchableItemAttributeSet的关键字属性,则可以使用CSSearchableItemAttributeSet实例中指定的关键字而不是NSUserActivity实例中指定的关键字来搜索该项.

为NSUserActivity或CSSearchableItemAttributeSet设置属性时没有冲突.

因此,当使用带有NSUserActivity的CSSearchableItemAttributeSet时,我们可以跳过设置NSUserActivity类通用的CSSearchableItemAttributeSet属性.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...