我有一个关于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];
Run Code Online (Sandbox Code Playgroud)
我在视图控制器viewDidLoad()之一中实现了上面的代码片段.当我的项目出现在聚光灯搜索中时,它会调用continueUserActivity委托方法.
我正在尝试访问userActivity.userInfo属性,但它返回null,即使它已在上面设置.
这是continueUserActivity片段:
-(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;
Run Code Online (Sandbox Code Playgroud)
}
编辑:我更改了位置对象作为基本类型返回,但我仍然在委托方法上获取null.
是否有其他人在iOS 9 beta 3中遇到此问题?