Swift 带Firebase的iOS应用程序不';不要从缓慢的互联网连接开始
由于我升级到了新的Firebase,我的应用程序启动时不会出现缓慢的互联网连接。当它有一个良好的连接时,也当它根本没有任何连接时,它会这样做。我认为我已经正确地设置了所有内容,因为如果我在设置中出错,它将根本无法工作 以下是我的AppDelegate代码:Swift 带Firebase的iOS应用程序不';不要从缓慢的互联网连接开始,swift,firebase,swift2,firebase-realtime-database,Swift,Firebase,Swift2,Firebase Realtime Database,由于我升级到了新的Firebase,我的应用程序启动时不会出现缓慢的互联网连接。当它有一个良好的连接时,也当它根本没有任何连接时,它会这样做。我认为我已经正确地设置了所有内容,因为如果我在设置中出错,它将根本无法工作 以下是我的AppDelegate代码: import UIKit import Firebase @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window:
import UIKit
import Firebase
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptionslaunchOptions: [NSObject: AnyObject]?) -> Bool {
UITabBar.appearance().tintColor = UIColor.redColor()
FIRApp.configure()
FIRDatabase.database().persistenceEnabled = true
return true
}
}
iOS包含一种称为watchdog的机制,它将终止在特定时间窗口内无法启动的任何应用程序。如果在
应用程序中执行的任何阻止任务(uux0:didFinishLaunchingWithOptions:)
时间过长,则可能导致应用程序终止。应该考虑异步执行这些任务。
您可以在代码中放置断点或打印语句,以确定哪一行花费的时间太长。您所说的“不启动”是什么意思?您收到了什么错误消息?另外,你是否运行过时间分析器仪器,或者在它挂起时拍摄了一张堆叠快照,以查看阻塞情况?我的意思是,如果我用慢速互联网连接启动它,应用程序会崩溃,但当它连接到计算机时不会。因此,我甚至没有收到错误消息。我还没有使用timer profiler工具,因为我还不知道它是如何工作的。如果应用程序崩溃,那么设备上会有一个带有错误消息的崩溃日志。您也可以使用网络链接条件在您的计算机上模拟慢速Internet,但我需要使用该方法,这在应用程序中花费了很长时间(u:didfishlaunchingwithoptions:)。否则应用程序将无法工作。我怎样才能使该方法执行呢?您不需要在
应用程序中调用这些方法(u2;:didFinishLaunchingWithOptions:)
。你总是可以把它们推迟到以后的某个时候;你将不得不推迟使用他们在你的应用程序中设置的内容,直到延迟的工作完成(即,呈现某种加载UI)。我很难推测为什么这些方法需要很长时间,但无论如何,这是一个不同的问题。