Ios 如何从存储在一个数组中的多个URL逐个加载JSON数据?

Ios 如何从存储在一个数组中的多个URL逐个加载JSON数据?,ios,json,swift,Ios,Json,Swift,我有一个URL数组(由用户选择),我想从中逐个加载JSON数据并填充UITableView。下面是我使用过的代码,但它似乎不起作用。谁能给我一个解决方案 while (i < fbPagesURLS.count) { let newUrl = NSURL(string: fbPagesURLS[i])! let task = NSURLSession.sharedSession().dataTaskWithURL(newUrl, comp

我有一个URL数组(由用户选择),我想从中逐个加载JSON数据并填充UITableView。下面是我使用过的代码,但它似乎不起作用。谁能给我一个解决方案

     while (i < fbPagesURLS.count)
    {

        let newUrl = NSURL(string: fbPagesURLS[i])!
        let task = NSURLSession.sharedSession().dataTaskWithURL(newUrl, completionHandler: { (data, response, error) -> Void in

            dispatch_async(dispatch_get_main_queue(), { () -> Void in

                if error == nil
                {
                    print(data)
                    print("----------------------------")
                    i++;
                }

            })
        })
        task.resume()
    }

尝试这样做,将URL分配给fbPagesURLS并调用loadData方法

var currentItem = 0
    func loadData()
    {
        if fbPagesURLS.count > currentItem
        {
            currentItem++
        }else{
            return
        }
        let task = NSURLSession.sharedSession().dataTaskWithURL(fbPagesURLS[currentItem], completionHandler: { (data, response, error) -> Void in

            dispatch_async(dispatch_get_main_queue(), { () -> Void in

                if error == nil
                {
                    print(data)
                    print("----------------------------")
                    self.loadData()
                }
            })
        })
        task.resume()
    }

i++
不在正确的位置。应该在
task.resume()
之后。如果您需要的是
一个接一个?
并且它的逻辑使用异步进程,最好的办法是使用递归函数。我更改了“I++”的位置,它现在确实打印数据,尽管它是empty@jose92405好的,我将尝试一个递归函数,并在这里给出一个更新!我也试过了,但效果相似。谢谢你的回复!它应该能工作,你检查过网址了吗,你能告诉我发生了什么吗?是的,网址是正确的,我通过把它们打印到日志中来检查。我真的不知道怎么了。这可能是dispatch\u async的问题吗?
    fbFeedMessages.removeAll()

    dispatch_async(dispatch_get_main_queue()) { () -> Void in

        self.loader(fbPagesURLS)

    }
var currentItem = 0
    func loadData()
    {
        if fbPagesURLS.count > currentItem
        {
            currentItem++
        }else{
            return
        }
        let task = NSURLSession.sharedSession().dataTaskWithURL(fbPagesURLS[currentItem], completionHandler: { (data, response, error) -> Void in

            dispatch_async(dispatch_get_main_queue(), { () -> Void in

                if error == nil
                {
                    print(data)
                    print("----------------------------")
                    self.loadData()
                }
            })
        })
        task.resume()
    }