У меня возник быстрый вопрос о свойстве 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(). Когда мой элемент появляется в поиске Spotlight, он вызывает метод делегата 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;
}
РЕДАКТИРОВАТЬ: я изменил объект местоположения, чтобы он возвращался как примитивный тип, но я все еще получаю значение null в методе делегата.
У кого-нибудь еще есть эта проблема в iOS 9 beta 3?