[英]iPhone App crashes when receiving push notification
我有一個應用程序,可以在我發送推送通知時向我發送設備的位置。 但是,當應用程序在前台運行時,該應用程序在收到推送通知時崩潰。
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler:(UIBackgroundFetchResult) -> Void )
{
NSLog("\(userInfo)")
if (managedConfig["locationTrackingDisabled"] ?? false) as! Bool == false {
locationManager.startUpdatingLocation()
}
let seconds = 4.0
let delay = seconds * Double(NSEC_PER_SEC) // nanoseconds per seconds
let dispatchTime = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
completionHandler(UIBackgroundFetchResult.NewData)
})
}
這里確實沒有足夠的信息來找出問題出在哪里,但是如果我戴上通俗易懂的調試帽,則if語句很容易崩潰,因為如果強制轉換為Bool
則if:
NSDictionary
locationTrackingDisabled
鍵,該鍵存儲了Bool
以外的其他內容(也許是NSString
) 更好的檢查方法是使用if let
語句安全地確定字典中的值是否具有預期的類型。
if let trackLocation = managedConfig["locationTrackingDisabled"] as? Bool, trackLocation {
locationmanager.startUpdatingLocation()
}
請注意,您可以通過Xcode在設備上運行您的應用,但仍會收到推送通知。 另外,如果您打算通過商店分發應用程序,則強烈建議您采用某種方式來跟蹤崩潰,即通過HockeyApp,Crashlytics,Crittercism等進行跟蹤。那里有很多選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.