2014-10-29 72 views
8

在斯威夫特AppDelegate類中,你會得到下面的方法:如何處理launchOptions:[NSObject:AnyObject]?在Swift中?

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中做這件事?

回答

27

在斯威夫特,你會做這樣的:

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

我該如何登錄屏幕remoteNotification包含的內容。由於應用程序需要從應用程序附加到xcode時的推送通知啓動? – 2016-02-16 15:43:00

+0

查看實際發生的事情的最好方法是將UIAlertView與消息一起作爲要記錄的打印語句的內容。 – 2016-07-22 03:44:49

1

我處理得斯威夫特這樣的:

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

我認爲斯威夫特3,這將是這樣的:

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