У меня есть приведенный ниже код Objective-C для запуска моего приложения с помощью быстрых действий на главном экране:
- (void)applyShortcutItem:(UIApplicationShortcutItem *)shortcutItem
{
ViewController *rootViewController = (ViewController *)[self.window rootViewController];
NSLog(@"Here %@ - %@", rootViewController, shortcutItem);
if([shortcutItem.type isEqualToString:@"LaunchMode0"])
{
[rootViewController setShortcutAction:LaunchMode0];
}
else if([shortcutItem.type isEqualToString:@"LaunchMode1"])
{
[rootViewController setShortcutAction:LaunchMode1];
}
}
Однако, я продолжаю получать ошибки времени выполнения (нераспознанные выбранные отправлены экземпляру), когда я пытаюсь запустить сбыстрые действия.Примечательно, что именно в этих двух строках кажется, что приложение сработало:
[rootViewController setShortcutAction:LaunchMode0];
и [rootViewController setShortcutAction:LaunchMode1];
Похоже, что rootViewController не нравится.Технически, первоначальный View Controller - это Navigation Controller, однако приложение запускается на моем главном контроллере представлений (у приложения есть только два представления, главное и страница about).
Выше приведен кодкод в моем проекте, но это та часть, которая дает мне ошибку - но дайте мне знать, если поможет другой код (я не хотел, чтобы публикация была слишком тяжелой)).
Спасиботак много!
РЕДАКТИРОВАТЬ: в соответствии с просьбой, вот полный NSLog.
2019-09-23 18:18:01.317271-0400 AppName[1719:200993] Here <UINavigationController: 0x108802200> - <UIApplicationShortcutItem: 0x282bd1500; type: Mode1Shortcut, title: Mode 1>
2019-09-23 18:18:01.321819-0400 AppName[1719:200993] -[UINavigationController setShortcutAction:]: unrecognized selector sent to instance 0x108802200
2019-09-23 18:18:01.323462-0400 AppName[1719:200993] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UINavigationController setShortcutAction:]: unrecognized selector sent to instance 0x108802200'
*** First throw call stack:
(0x2045aa98c 0x2037839f8 0x2044c71c8 0x231033220 0x2045b01d4 0x2045b1e6c 0x102c14af0 0x102c148ec 0x230ffdf90 0x2308cc468 0x2308cd150 0x2308cc224 0x2308d0f24 0x230c012b0 0x206f275d8 0x102fecc78 0x102ff0840 0x206f61040 0x206f60cdc 0x206f61294 0x20453c728 0x20453c6a8 0x20453bf90 0x204536ecc 0x2045367c0 0x20673779c 0x231007c38 0x102c076d0 0x203ffa8e0)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)