操作后显示数组

时间:2015-09-07 18:43:57

标签: ios arrays swift

我有一个小应用程序从网上下载一些名称,然后将它们附加到一个数组。

func fetchTitle(identifier: String, completion: (title: String) -> Void) {
        let profileUrl = NSURL(string:"http://www.facebook.com/" + identifier)!
        let task = NSURLSession.sharedSession().dataTaskWithURL(profileUrl) {
            (data, response, error) -> Void in
            if let urlContent = data {
                let webContent = NSString(data: urlContent, encoding: NSUTF8StringEncoding)
                let websiteArray = webContent!.componentsSeparatedByString("pageTitle\">")
                let secondArray = websiteArray[1].componentsSeparatedByString("</title>")
                let title = secondArray[0]
                completion(title: title)
                print(title)

            }
        }
        task.resume()
    }



    //print(newArray)


    var titles = [String]()
    //let identifiers = ["100001986741004","100003866283798","100003455181526"]
    let queue = dispatch_queue_create("titles", DISPATCH_QUEUE_SERIAL)

    dispatch_apply(newArray.count, queue) { index in
        let identifier = newArray[index]
        fetchTitle(identifier) { title in
            dispatch_async(queue) {
                titles.append(title)
                array.append(title)
            }
        }
    }

我知道它非常复杂,因为它从数组中获取数字并将它们转换为从网络下载的名称,但从不介意。问题是,当我打印标题时,它给了我名字,所以我认为它确实将它们附加到数组,但是当我打印数组时,它没有给我任何结果..我认为这是因为它需要一点时间从网上下载数据,并立即打印,但如何在下载完成之前延迟打印(或显示到表格视图)?

感谢任何帮助!

非常感谢!

1 个答案:

答案 0 :(得分:0)

我不知道swift,但是当你的数据被检索到时,在Objective-C中你可以调用[tableView reloadData];应该足够简单,以转换为Swift