NSCollectionView,Swift 4 - 无法调用 "register"

NSCollectionView, Swift 4 - Cannot invoke "register"

谁能建议如何解决这个 NSCollectionView 问题?从 Swift 3 转换为 Swift 4,魔法开始发生:)

代码:

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

第二行错误:

Cannot invoke 'register' with an argument list of type '(NSNib?, forItemWithIdentifier: String)'

在 Swift 4 中,您需要使用 NSUserInterfaceItemIdentifier 而不是 String 来标识用户界面元素。

您应该为标识符定义静态常量并在注册 nib 时引用它们。

示例:

extension NSUserInterfaceItemIdentifier {
    static let collectionViewItem = NSUserInterfaceItemIdentifier("CollectionViewItem")
}

collectionView.register(item, forItemWithIdentifier: .collectionViewItem)