Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 无法使NSCollectionView NSCollectionViewItem工作_Swift_Cocoa_Nscollectionview_Nscollectionviewitem - Fatal编程技术网

Swift 无法使NSCollectionView NSCollectionViewItem工作

Swift 无法使NSCollectionView NSCollectionViewItem工作,swift,cocoa,nscollectionview,nscollectionviewitem,Swift,Cocoa,Nscollectionview,Nscollectionviewitem,我已经按照下面的代码设置了所有内容,但由于某些原因,我无法通过考试 override func viewDidLoad() { super.viewDidLoad() // Do view setup here. let item = NSNib(nibNamed: NSNib.Name("CollectionViewItem"), bundle: nil) self.collectionView.register(item, forItemWithId

我已经按照下面的代码设置了所有内容,但由于某些原因,我无法通过考试

    override func viewDidLoad() {
    super.viewDidLoad()
    // Do view setup here.

    let item = NSNib(nibNamed: NSNib.Name("CollectionViewItem"), bundle: nil)
    self.collectionView.register(item, forItemWithIdentifier: .collectionViewItem)


extension ViewController: NSCollectionViewDataSource {

func numberOfSections(in collectionView: NSCollectionView) -> Int {
    return 1
}

func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int {
    return Templates.count
}

func collectionView(_ collectionView: NSCollectionView,
                    itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {

    let item = collectionView.makeItem(
        withIdentifier: .collectionViewItem, for: indexPath)

    guard let collectionViewItem = item as? CollectionViewItem else {return item}

    collectionViewItem.imageView = image
    return item
}
}

extension NSUserInterfaceItemIdentifier {
static let collectionViewItem = NSUserInterfaceItemIdentifier("CollectionViewItem")
}
卫兵总是返回项目,而不是collectionViewItem。 也许有人遇到过这样的问题?我做错了什么? 几乎所有人都在学习教程

使用最新的Xcode 10.0+最新的swift发现问题

问题:我做了什么:我用NSCollectionViewItem的子类创建了一个新文件,并选择创建.xib

事实证明,Xcode 10.0不能正确地做到这一点。它创建了一个带有占位符、文件所有者等内容的.xib。Xcode没有从IB添加集合视图项对象。这很奇怪,因为以前的版本会自动添加集合视图项对象

添加集合视图项对象并设置类后,问题自行解决。

发现了问题

问题:我做了什么:我用NSCollectionViewItem的子类创建了一个新文件,并选择创建.xib

事实证明,Xcode 10.0不能正确地做到这一点。它创建了一个带有占位符、文件所有者等内容的.xib。Xcode没有从IB添加集合视图项对象。这很奇怪,因为以前的版本会自动添加集合视图项对象


一旦我添加了Collection View Item对象并设置了类,问题就自行解决了。

看起来您并没有正确地向应用程序介绍您的Collection View Item。仔细看看raywenderlich网站。它看起来不像是你在正确地告诉应用程序你的收藏视图项目。仔细看看raywenderlich网站。
guard let collectionViewItem = item as? CollectionViewItem else {return item}