2014-10-03 45 views
5

我遇到了Appdelegate方法OpenURL的問題。swift中的openURL應用程序

我已經設置了我的導入UTI和文檔類型。但是,當從郵件附件中打開我的應用程序時,應用程序會在實施方法時立即崩潰。

貶值的handleOpenURL有效,但不是OpenURL?

目前我在實現中沒有代碼,只是返回true。

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String, annotation: AnyObject?) -> Bool { 
    return true 
} 

崩潰說Thread 1: EXC_BAD_ACCESS (code-1, address-0x0)

我真的不希望有使用方法已過時。

+0

您可以嘗試使'sourceApplication'參數隱式解包可選,因爲這是方法簽名之間簽名不匹配的典型情況,並試圖將nil傳遞給非可選參數。當然,它也表明有幾千個其他可能的錯誤,因爲它只是表示調用了'abort()'......也可能是'annotation'參數需要隱式地解開而不是顯式地解包。更多地思考它,這實際上更有可能。 – 2014-10-03 16:04:25

+0

感謝大衛,你是正確的,它實際上是sourceApplication參數。如果你想添加這個答案,我會接受它。再次感謝 – BassetMan 2014-10-04 14:59:54

回答

2

這是Swift編譯器自動生成的方法簽名與實際簽名之間簽名不匹配的相當典型。它發生在你試圖將nil從Objective-C傳遞到Swift明確展開的可選項時。將annotation參數更改爲隱式解包,您應該是gtg。

相關問題