【发布时间】:2015-10-11 17:46:54
【问题描述】:
我想在我的 iOS 8 应用中添加对 iOS 9 中引入的新 3D Touch Quick Actions 的支持。我知道我需要使用弱链接方法,但问题是我不知道为应用委托方法执行此操作的正确语法。
要处理快速操作,我的应用程序委托需要实现新的application:performActionForShortcutItem:completionHandler: 方法,但是以不会在 iOS 8 上崩溃的弱链接方式执行此操作的语法是什么?我已经走到这一步了:
// iOS 9 only...
if ([UIApplicationDelegate instancesRespondToSelector:
@selector(application:performActionForShortcutItem:completionHandler:)]) {
// How do I access the method's shortcutItem and completionHandler arguments from here?
}
如您所见,我使用的是 Objective-C 而不是 Swift。
【问题讨论】:
-
你不需要为那个方法做任何特别的事情。只要实现它,在iOS 8上系统不会调用它;你的代码甚至不会运行。它不会做任何事情。如果你也实现了
- (void)appleDontEverCallThis{ NSAssert(NO, @""); },你也不会导致崩溃。您只需要对可能存在或不存在的整个 类 进行弱链接。 -
@JoshCaswell 太好了,谢谢!如果您将评论添加为答案,那么我会接受。
标签: ios objective-c cocoa cocoa-touch