0

编译器在第 3 行崩溃,我无法在任何地方找到有关 NSTableRowView 初始化程序的信息

class ItemRowView: NSTableRowView {
    convenience override init(frame: NSRect) {
        self.init(frame: frame) // EXC BAD ACCESS
        self.draggingDestinationFeedbackStyle = NSTableViewDraggingDestinationFeedbackStyle.None
    }
4

1 回答 1

0

首先,init( frame: NSRect )指定的初始化器,所以这里的关键字convenience是错误的。那么您可能打算super递归调用初始化程序而不是您自己的方法。最后,您需要实现另一个必需的初始化程序init?(coder: NSCoder)

以下代码应该可以帮助您:

class ItemRowView: NSTableRowView {
    override init(frame: NSRect) {
        super.init(frame: frame) // super - not self
        self.draggingDestinationFeedbackStyle = NSTableViewDraggingDestinationFeedbackStyle.None
    }

    required init?(coder: NSCoder) {
        // Write something useful here, or leave the default implementation
        fatalError("init(coder:) has not been implemented")
    }
}
于 2016-04-19T20:56:12.457 回答