我遇到了Appdelegate方法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 :(得分:2)
这是Swift编译器自动生成的方法签名与实际签名之间签名不匹配的典型特征。当你尝试将nil从Objective-C传递给Swift显式解包的可选项时,就会发生这种情况。更改annotation
参数以隐式展开,您应该是gtg。
答案 1 :(得分:1)
这个问题让我头疼了一个星期 我的应用程序在使用社交媒体登录后仍然崩溃,例如微信/ LinkedIn.But Facebook和Google登录工作正常。
我注意到我的应用程序在确认登录微信应用程序后将继续崩溃,并将进入前台。并且出现 BAD EXCESS 错误。我已尝试删除 AppDelegate 上的应用程序打开网址,应用程序不会崩溃,但社交媒体登录的操作无效。所以我发现我的问题出在特定的方法上。在搜索网页后,我发现我使用已弃用的ApplicationOpenUrl 方法作为https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623073-application的参考
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
let sourceApplication = options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String
let annotation = options[UIApplicationOpenURLOptionsKey.annotation]
let application = app
return true
}
请注意,已弃用的版本正在使用注释:如果您已连接到微信等Obj-c框架,则会导致问题。 所以我做的是,我将我的代码换成新格式
<input #fileUpload type="file" (click)="fileUpload.value = null"(change)="importFile($event)" style="display:none"
accept="image/*">
<button (click)="fileUpload.click()"> </button>
希望这有帮助。它也将成为我的功能参考。谢谢StackOverflow
答案 2 :(得分:1)
Muhammad Asyraf的答案的Swift 5版本:
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
let sourceApplication = options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String
let annotation = options[UIApplication.OpenURLOptionsKey.annotation]
return true
}