Miałem szybkie pytanie dotyczące właściwości userInfo NSUserActivity.iOS 9 - Właściwość userInfo NSUserActivity wyświetlana null
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];
Mam powyższy fragment zaimplementowany w jednym z kontrolerów widoku viewDidLoad(). Kiedy mój przedmiot pojawia się w ramach wyszukiwania spotlight, wywołuje metodę delegowania continueUserActivity.
Próbuję uzyskać dostęp do właściwości userActivity.userInfo, ale zwracana jest wartość null, mimo że została ustawiona powyżej.
Oto urywek 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;
}
EDIT: Zmieniłem położenie obiektu, aby powrócić jako prymitywne typu, ale nadal jestem coraz zerowy na metodzie delegata.
Czy ktoś inny ma ten problem w iOS 9 beta 3?
Zrobiłem prawie dokładnie to i nie wydaje się, że działa dla mnie w Xcode 7 beta 6, ani na symulatorze, ani na urządzeniu. Słownik userInfo jest zawsze pusty. To działa dla ciebie? – bdmontz