ios - 当 UICollectionView 调用显示单元格时,数据未从 Core Data 完全加载

标签 ios swift cocoa-touch core-data uicollectionview

我想在 UICollectionView 中显示从 viewDidLoad 中的核心数据读取的一些数据。但是,当 UICollectionView 显示其单元格时,数据尚未完全加载。因此,UICollectionView 是空的。

我想问的是如何确保在 UICollectionView 开始加载其单元格之前数据已准备好。以下是我正在处理的代码的一部分。

class MenuViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {

    @IBOutlet weak var categoryCollectionView: UICollectionView!

    var allDishes = [AnyObject]()
    var categoryList = [String]()

    let context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        let request = NSFetchRequest(entityName: self.dishItemEntityName)
        var allDishes = self.context?.executeFetchRequest(request, error: nil)

        if let allDishes = allDishes {
            for dish in self.allDishes {
                let dish = dish as! DishItem
                if contains(self.categoryList, dish.category) {
                    continue
                } else {
                    self.categoryList.append(dish.category)
                }
            }
        }
    }


    // MARK: Delegate Methods

    func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return self.categoryList.count
    }
}

最佳答案

viewDidLoadviewWillAppear 之前调用。您可以在 viewWillAppear 中的 Collection View 上调用 reloadData

更好:使用 NSFetchedResultsController,这将为内存管理、性能和自动更新带来许多其他好处。

关于ios - 当 UICollectionView 调用显示单元格时,数据未从 Core Data 完全加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32105619/

相关文章:

ios - Cocos2d 2.x : messed up with circular references in my game hierarchy even if I am using ARC enabled code

ios - 如何为spritekit中的节点添加滑动手势

swift - 将反向地理编码的结果分配给全局变量

ios - Swift NSAttributedString 修剪

objective-c - +[NSString stringWithString :] -- what's the point?

ios - 将 Parse.com API 与 Pubnub 结合起来是否是大规模实时消息传递和获取组合工具集的可行选择?

android - AutoLayout对处理iOS屏幕大小的 fragment 有用吗?为什么Android中没有等效的工具?

ios - 无法从此设备复制符号使用 iOS 9.2.1 Xcode 是 7.2

SwiftUI - NavigationView 将详细信息指示器 ">"添加到 ListView - 如何删除?

objective-c - 复制 UIView