我有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数据实现后台进程或在第一个表控制器(在设备数据上)的后台加载会更有效吗?