2

I am new in ios swift ,

how can I fetch data from webservice during splash screen time ,

In other words I want to make splash screen still appear until the app finish fetching data.

I tried put NSURLConnection.sendAsynchronousRequest function in appdelegate but splash screen not wait sendAsynchronousRequest to finish

4

2 回答 2

4

您可以在 Storyboard 中创建启动画面视图控制器并将其标记为初始视图控制器。为其分配一个自定义视图控制器,例如“SplashViewController.swift”。此视图控制器具有常用方法,例如 viewDidAppear,您可以在其中建立网络连接。完成后,您可以使用 segues 将应用程序定向到所需的视图控制器。

于 2015-11-06T17:30:09.247 回答
0

我不认为那是个好主意。例如:

我的互联网连接非常糟糕,您的应用程序会向我显示启动画面几秒钟。所以我通常认为该应用程序会崩溃,或者其他什么。更好的方法是在您的 MainViewController 中执行此操作,并向用户显示 Spinner/Load Screen 或类似的东西。

快速发出异步请求的一个好方法是使用(很棒的)扩展 Alamofire。尤其是当您刚接触 iOS Swift 时。

https://github.com/Alamofire/Alamofire

然后,在您的 ViewDidLoad 中提出您的请求(在这种情况下仍作为后台线程)

let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0)) {

// load here spinner / load screen 
            
// alamofire request
Alamofire.request(.POST, "http://www.test.com/service", parameters: ["foo": "bar"]).responseJSON { (req, res, json, error) in
  ....
}
于 2015-07-31T09:15:10.903 回答