我的NSCollectionView
在致电makeItem(withIdentifier identifier: String, for indexPath: IndexPath)
时崩溃了。 numberOfItemsInSection
返回正确的值。如果我在makeItem...
而不是viewDidLoad
中调用itemForRepresentedObject
,我会看到一个错误,指示indexPath超出范围。怎么会这样?
集合视图的加载方式如下:
class TagCollectionViewController: NSViewController, NSCollectionViewDataSource {
fileprivate static let itemIdentifier = "TagItem"
@IBOutlet var collectionView: NSCollectionView!
fileprivate var tags = List<Tag>.init()
override func viewDidLoad() {
super.viewDidLoad()
let nib = NSNib(nibNamed: "TagCollectionViewItem", bundle: nil)
collectionView.register(nib, forItemWithIdentifier: TagCollectionViewController.itemIdentifier)
collectionView.dataSource = self
}
(List集合是一个Realm类)
在viewWillAppear()
期间,标签集合从ReSwift状态填充:
override func viewWillAppear() {
for image in mainStore.state.selectedImages {
for tag in image.tags {
tags.append(tag)
}
}
super.viewWillAppear()
}