我在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 - 没有运气.有任何想法吗?
随着接受的答案,我得到了进一步,但现在它崩溃了
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发行说明中找到了我的工作:
引用它们
在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)
| 归档时间: |
|
| 查看次数: |
2527 次 |
| 最近记录: |