登录时应用程序崩溃(xcode 9.3)EXC_BAD_ACCESS(代码= 1,地址= 0x1)

Max*_*aev 4 swift xcode9.3

我在9.3更新中遇到此崩溃,在9.2上一切正常.它能是什么?通过任何来源登录时出现错误(登录通行证,VK,谷歌)

class AppDelegate: UIResponder, UIApplicationDelegate, GIDSignInDelegate {

var window: UIWindow?

private let settingsManager = SettingsManager.manager

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

//  Googole Map
    GMSServices.provideAPIKey("-k")

    UINavigationBar.appearance().tintColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
    UINavigationBar.appearance().barTintColor = #colorLiteral(red: 0.2069905996, green: 0.2386507988, blue: 0.3337202668, alpha: 1)

    UITabBar.appearance().tintColor = #colorLiteral(red: 0.2069905996, green: 0.2386507988, blue: 0.3337202668, alpha: 1)

    let barFont = UIFont.systemFont(ofSize: 20)
    UINavigationBar.appearance().titleTextAttributes =  [NSForegroundColorAttributeName: #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1), NSFontAttributeName: barFont]


    if settingsManager.isFirstStartApp {

    } else {

        settingsManager.isFirstStartApp = true
        settingsManager.setDefaultSettings()

    }

    // Facebook
    FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)

    // Google +
    var configureError: NSError?
    GGLContext.sharedInstance().configureWithError(&configureError)
    assert(configureError == nil, "Error configuring Google services: \(String(describing: configureError)) )")
    GIDSignIn.sharedInstance().delegate = self

    return true
}
Run Code Online (Sandbox Code Playgroud)

签署谷歌时第一个应用程序方法出错.我搜索了一些话题 - 没有运气.转换为Swift 4 - 没有运气.有任何想法吗?

崩溃日志pastebin.com/DEEeQnZB

随着接受的答案,我得到了进一步,但现在它崩溃了

        let predicate = NSPredicate(format: "isActive == %@", true as CVarArg) 
Run Code Online (Sandbox Code Playgroud)

具有相同的"访问不良"

UPD:通过替换来解决问题

let predicate = NSPredicate(format: "isActive == %@", true as CVarArg)
Run Code Online (Sandbox Code Playgroud)

let predicate = NSPredicate(format: "isActive == true")
Run Code Online (Sandbox Code Playgroud)

小智 15

与Facebook登录有类似的问题 - 在Xcode 9.3发行说明中找到了我的工作:

https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-DontLinkElementID_1

引用它们

在Objective-C中定义的协议方法或基类方法声称在其标头中采用类型为id的非null参数但在运行时使用nil值调用的情况下,Xcode 9.3编译的Swift代码会覆盖这些方法,这可能会在崩溃时崩溃调用Swift实现.(38675815)解决方法:更改Swift重写以获取Any类型的值.例如,如果您实现UIApplicationDelegate协议的应用程序(_:open:sourceApplication:annotation :)方法:

class AppDelegate: UIApplicationDelegate {
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
    return true
}
Run Code Online (Sandbox Code Playgroud)

传递nil作为注释参数时,程序可能会崩溃.通过使注释参数具有类型Any来避免崩溃?:

class AppDelegate: UIApplicationDelegate {
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any?) -> Bool {
    return true
}
Run Code Online (Sandbox Code Playgroud)