缓慢加载CloudKit表控制器数据 - 提高速度?

时间:2016-06-05 19:52:32

标签: swift grand-central-dispatch background-process cloudkit nsoperationqueue

我有2个表控制器和一个最终的详细控制器 - 所有数据都由CloudKit提供。我的第一个表控制器加载速度非常慢(3-4秒),只能产生大约8个表格单元格 - 每个单元格只包含一个图像和标签,如下所示。第二个表格控制器大约需要2-3秒的加载时间。

  override   func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
    {
        let cell = tableView.dequeueReusableCellWithIdentifier("dining") as! DiningTableCell
        let restaurant: CKRecord = categories[indexPath.row]
        cell.RestaurantName?.text = restaurant.valueForKey("Name") as? String
        let img = restaurant.objectForKey("Picture") as! CKAsset
        cell.RestaurantPhoto.image = UIImage(contentsOfFile: img.fileURL.path!)
        return cell
    }

无论如何,我认为我有两次创造更快响应时间的机会。第一个是,实现调度(a-sync)或NSOperationQueue(如果我允许用​​户选择表格单元格,则不确定使用哪个)......但是有些内容

 override   func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
        {
        let cell = tableView.dequeueReusableCellWithIdentifier("dining") as! DiningTableCell
        let restaurant: CKRecord = categories[indexPath.row]
        cell.RestaurantName?.text = restaurant.valueForKey("Name") as? String
        //NSOperationQueue Function {
        let img = restaurant.objectForKey("Picture") as! CKAsset

        cell.RestaurantPhoto.image = UIImage(contentsOfFile: img.fileURL.path!)
        // }
        return cell
    }

或将第一个表控制器转换为设备应用程序数据,然后在后台加载第二个表控制器和详细控制器。

使用所有CloudKit数据实现后台进程或在第一个表控制器(在设备数据上)的后台加载会更有效吗?

0 个答案:

没有答案