首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSSearchableItemAttributeSet在NSUserActivity上应该使用哪些属性?

CSSearchableItemAttributeSet在NSUserActivity上应该使用哪些属性?
EN

Stack Overflow用户
提问于 2015-12-24 21:27:39
回答 2查看 1.1K关注 0票数 7

我在我的网站中添加了网页标记,这样当用户在iOS 9中搜索时,Spotlight搜索结果中就会出现项目。用户可以在应用程序中浏览相同的项目,因此我希望创建NSUserActivity对象,该对象与用户浏览项目时链接到Web内容。

现在,NSUserActivity有一个contentAttributeSet属性,我将使用该属性将缩略图附加到活动。CSSearchableItemAttributeSet具有NSUserActivity也具有的一些属性,因此我不确定应该实现哪个属性,或者是否应该为两者指定相同的数据。我是为title设置了NSUserActivity,还是设置了CSSearchableItemAttributeSet上的title,还是只设置了其中一个?keywords也是一样,这两者都是一个属性。

代码语言:javascript
复制
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;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-21 19:47:54

在与DTS就这个问题进行了讨论之后,他们得出了以下结论:

关于属性,比如keywords,可以在NSUserActivity和NSUserActivity的嵌入式CSSearchableItemAttributeSet上设置,Core工程的建议是只在CSSearchableItemAttributeSet上设置它们。 titledisplayName或多或少是一样的,它的软含义是,如果条目有一个很长的标题,那么它将在title属性中,而缩写的标题将在displayName属性中。

票数 1
EN

Stack Overflow用户

发布于 2016-01-18 08:55:46

如果同时为和CSSearchableItemAttributeSet指定了NSUserActivity标题属性,则

  1. 项目可以通过这两个标题搜索。
  2. 搜索结果将具有在NSUserActivity实例中指定的标题。

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

为NSUserActivity或CSSearchableItemAttributeSet设置属性时不存在冲突。

因此,当将CSSearchableItemAttributeSet与NSUserActivity一起使用时,我们可以跳过设置NSUserActivity类共有的CSSearchableItemAttributeSet属性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34458052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档