- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个应用程序,您可以在其中找到我们大学的员工,并通过电子邮件与他们联系。当你找到某人并查看详细信息时,将创建一个 NSUserActivity
:
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9.0")) {
//Create NSUserActivity for the person
NSUserActivity * activity = [[NSUserActivity alloc] initWithActivityType:CAUserActivityTypePerson];
activity.title = [_displayedPerson completeName];
activity.requiredUserInfoKeys = [NSSet setWithArray:@[@"id", @"fullName"]];
activity.userInfo = [NSDictionary dictionaryWithObjects:@[_displayedPerson.personID, [_displayedPerson completeName]] forKeys:@[@"id", @"fullName"]];
activity.keywords = [NSSet setWithObjects:[_displayedPerson completeName], [_displayedPerson institutionString], nil];
CSSearchableItemAttributeSet * contentAttributeSet = [[CSSearchableItemAttributeSet alloc] init];
contentAttributeSet.contentDescription = [_displayedPerson institutionString];
activity.contentAttributeSet = contentAttributeSet;
//make the activity active and searchable
self.userActivity = activity;
self.userActivity.eligibleForHandoff = NO;
self.userActivity.eligibleForSearch = YES;
self.userActivity.eligibleForPublicIndexing = NO;
self.userActivity.needsSave = YES;
[self.userActivity becomeCurrent];
NSLog(@"UserActivity created\nInfo: %@", self.userActivity.userInfo);
} else
NSLog(@"Did not create NSUserActivity! iOS 9 required!");
创建 UserActivity 时,NSLog(@"UserActivity created\nInfo: %@", self.userActivity.userInfo);
返回正确的 userInfo
。
当我在聚光灯下找到条目(正确显示所有相关数据)并单击它时,应用程序将打开并调用 - (BOOL)application:continueUserActivity:restorationHandler:
并调用 userActivity
包含正确的标题和类型。但是 userInfo
和 requiredUserInfoKeys
都是空的。
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {
NSLog(@"Activity: %@\nInfo: %@", userActivity.activityType, userActivity.requiredUserInfoKeys);
return YES;
}
我不明白,我在哪里犯了错误。我已经读过 this , 但它没有帮助。
PS:_displayedPerson.personID
是一个 NSNumber
并且 [_displayedPerson completeName]
返回一个 NSString
最佳答案
我在 Apple 开发者论坛中找到了答案。 updateUserActivityState:
需要被覆盖。
- (void)updateUserActivityState:(NSUserActivity *)userActivity {
[userActivity addUserInfoEntriesFromDictionary:@{@"id" : _displayedPerson.personID, @"fullName" : [_displayedPerson completeName]}];
}
我不知道为什么我必须这样做,但它有效。希望这也能帮助其他人。
关于ios - 无法恢复 NSUserActivity 的 userInfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34473480/
我在使用我的应用程序中的 mapItem 实现 NSUserActivity 时遇到了一些问题。 我想要的只是能够在应用程序切换器中使用“获取路线”建议,就像 Foursquare 所做的那样: 我在
我正在尝试使用 NSUserActivity 在我的 iPhone 和 iPad 之间测试 iOS 8.1 切换功能。为此,我尝试既实现自己的解决方案,又使用 Apple 的 PhotoHandoff
在 iOS 9 中,NSUserActivities 可以与 Siri 一起使用,例如,“Siri,请在一小时内提醒我”,在她知道“THIS”是什么的上下文的情况下创建提醒。有没有办法以编程方式执行此
我有一个关于 NSUserActivity 的 userInfo 属性的快速问题。 NSString *activity = @"com.test.activity"; NSUserActivity
以下是我试图实现的代码,使应用程序事件和状态可搜索但无法在 iOS 搜索中显示 NSUserActivity *userActivity = [[NSUserActivity alloc]initWi
我正在努力思考 NSUserActivity,但我并不完全确定如何正确使用它们。我已经像这样正确设置了我的 NSUserActivity: let attributeSet = CSSearchabl
我正在尝试使用通用链接从应用程序 A 打开应用程序 B,如下所示: @IBAction func openButtonPressed(_ sender: Any) { if let appUR
这就是我注册 UserActivity 的方式。 我得到了捷径并且功能有效。 但是我得到的应用程序图标是缩略图,而不是我设置的图标, func registerUserActivity(compone
我试图让我的 NSUserActivity 被 iOS 中 Spotlight 中的私有(private)索引索引。我已按照 Apple's Index Activities and Navigati
我正在使用 NSUserActivities 实现 iOS9 搜索索引。根据文档 NSUserActivity应该有一个名为 contentAttributeSet 的属性,用于向搜索项添加更多内容。
我有一个应用程序,您可以在其中找到我们大学的员工,并通过电子邮件与他们联系。当你找到某人并查看详细信息时,将创建一个 NSUserActivity: if (SYSTEM_VERSION_GREATE
我正在尝试将我自己的事件添加到 osx 10.11 上的 Spotlight 搜索结果中。但经过多次尝试,我无法通过关键字搜索或标题搜索进入 Spotlight 搜索结果。 { self.us
所以目前正在测试一些 ios9 beta 功能,但是 NSUserActivity 类已经有一段时间了,它用于切换。 基本上就是这样。当应用启动 NSUserActivity 时,我可以看到 laun
我阅读了一些教程,发现 NSUserActivity 用于用户进行事件时的索引信息,Core Spotlight 用于索引应用程序中的一组内容数据。 使用 NSUserActivity var act
我正在使用 NSUserActivity 定义应用程序函数,因此它会出现在 Spotlight 和 Siri 快捷方式中: let activity = NSUserActivity(activity
在WWDC2015看iOS9搜索API的视频时,有一个demo是这样的: var activity:NSUserActivity = NSUserActivity(activityType:"com.
我同时使用 NSUserActivity 和 Core Spotlight 来索引我应用程序中的内容。我使用 Core Spotlight 的原因是因为我想在用户访问(打开)它之前索引这些内容。 我面
我正在快速实现 CallKit,我在直接从最近的日志中进行调用时遇到了 NSUserActivity 问题。 在最近的日志中点击我的应用条目时,我的应用正在启动,但 AppDelegate 的任何方法
使用 Xcode 10(测试版 6)我可以毫无问题地编写和运行以下代码: import Intents func test() { let activity = NSUserActivity(
我已经在我们的应用程序中实现了 Handoff,当应用程序在前台或后台运行时,它可以很好地用于 Web 到应用程序的切换,反之亦然。 但是,如果应用未运行,那么如果用户从 Web 到应用切换启动应用,
我是一名优秀的程序员,十分优秀!