【发布时间】:2015-07-09 20:54:40
【问题描述】:
我有一个关于 NSUserActivity 的 userInfo 属性的简短问题。
NSString *activity = @"com.test.activity";
NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:activity];
userActivity.title = @"Test";
userActivity.keywords = [NSSet setWithArray:@[@"Test"];
userActivity.userInfo = @{@"location": location};
userActivity.eligibleForSearch = YES;
self.userActivity = userActivity;
[self.userActivity becomeCurrent];
我在其中一个视图控制器 viewDidLoad() 中实现了上述 sn-p。当我的项目出现在聚光灯搜索中时,它会调用 continueUserActivity 委托方法。
我正在尝试访问 userActivity.userInfo 属性,但它返回 null,即使它已在上面设置。
这是 continueUserActivity sn-p:
-(BOOL)application:(nonnull UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * __nullable))restorationHandler {
NSString *locationName = [[userActivity.userInfo objectForKey:@"location"] valueForKey: @"name"];
// Do stuff with locationName
return NO;
}
编辑:我将位置对象更改为作为原始类型返回,但委托方法仍然为 null。
还有其他人在 iOS 9 beta 3 中遇到这个问题吗?
【问题讨论】:
标签: ios objective-c ios9