如何在Swift中处理launchOptions: [NSObject: AnyObject]??

8
在一个 Swift AppDelegate 类中,你会得到以下方法:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // ...code...
    return true
}

launchOptions: [NSObject: AnyObject]?参数是可选的。在Objective-C中,这被传递为NSDictionary。我想从中提取UIApplicationLaunchOptionsRemoteNotificationKey。以下是Objective-C中的操作方法:

NSDictionary *remoteNotification = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey];

if (remoteNotification)
{
    // ...do stuff...
}

你如何在Swift中实现这个功能?

3个回答

27

在Swift中,你需要这样做:

if let remoteNotification = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? NSDictionary {
    // ...do stuff...
}

1
我如何在应用程序从推送通知启动时,将remoteNotification的内容记录到屏幕上,并且应用程序已附加到Xcode? - user4591756
最好的方法是使用UIAlertView,将消息作为打印语句的内容弹出,以便查看实际发生的情况。 - Peter Kaminski

1
我用Swift这样处理它:

if let remoteNotification = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? [NSObject : AnyObject] {
    // ... do stuff
}

0

我认为对于Swift 3,应该是这样的:

if (launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification] as? NSDictionary) != nil {
    // ...do stuff          
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接