ios - 由于下载延迟,数组超出索引

标签 ios swift uicollectionview swift2

我正在开发一个应用程序,可以从 Facebook 下载姓名和图像,并将它们显示到 CollectionView 中。图片功能运行得很好,但有一个小细节我对名称感到困惑。这是文本的 CollectionView 函数内的代码:

let url = NSURL(string: "http://www.facebook.com/" + newArray[indexPath.row])!
    let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (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]
            //----- serperated ---------
            dispatch_async(dispatch_get_main_queue())
                {

                    if title == "Page Not Found" || title == "Pagina Niet Gevonden" {

                    } else {

                        stalkers.append(title)

                    }
            }

        }


    }
    task.resume()

    cell.label.text = stalkers[indexPath.row]
    return cell

问题是当应用程序启动时,它会崩溃并出现错误“数组超出索引”。我认为这是因为加载时数组为空,并且下载需要一段时间。我不知道如何让标签在下载后显示每个名称。

非常感谢任何帮助,真的!谢谢!

最佳答案

首先检查一下:

if stalkers.count >= indexPath.row {
  cell.label.text = stalkers[indexPath.row]
}

下载后,指定标题:

dispatch_async(dispatch_get_main_queue())
                {

                    if title == "Page Not Found" || title == "Pagina Niet Gevonden" {
                    } else {
                        stalkers.append(title)
                    }
    cell.label.text = stalkers[indexPath.row] //Add this line after download done.
            }

关于ios - 由于下载延迟,数组超出索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32668844/

相关文章:

ios - UINavigationController 对调用pushViewController : function? 的对象做了什么

ios - 从开发者的角度来看,各个 iOS 版本之间有什么区别?

ios - 如何确保蓝牙应用程序仅连接到原始外围设备?

ios - 无法使用类型为 'Double' 的参数列表调用类型为 '(Range<Double>)' 的初始值设定项

ios - Spritekit 改变重力

ios - UICollectionView 行间距在某些设备上变得很大

ios - UICollectionView 加载较晚并且滚动非常颠簸

ios - Swift:UICollectionView 页脚未显示

ios - 打开 UILocalNotification 后执行代码

ios - swift - 在没有虚拟间隔 View 的情况下垂直居中多个 View