Ваша начальная проблема была:
class ReportView: NSView {
var categoriesPerPage = [[Int]]()
var numPages: Int = { return categoriesPerPage.count }
}
Элемент экземпляра categoryPerPage нельзя использовать для типа ReportView
предыдущие сообщения правильно указывают, если вы хотите вычисляемое свойство , =
знак ошибочный.
Дополнительная возможность для ошибки:
Если вы намеревались «Задать значение свойства по умолчанию с помощью замыкания или функции» , вам нужно лишь немного его изменить. (Примечание: этот пример явно не предназначен для этого)
class ReportView: NSView {
var categoriesPerPage = [[Int]]()
var numPages: Int = { return categoriesPerPage.count }()
}
Вместо удаления =
добавляем()
обозначение закрытия инициализации по умолчанию. (Это может быть полезно при инициализации кода пользовательского интерфейса, чтобы хранить все это в одном месте.)
Тем не менее, точно такая же ошибка возникает:
Элемент экземпляра categoryPerPage нельзя использовать для типа ReportView
Проблема заключается в попытке инициализировать одно свойство значением другого. Одним из решений является создание инициализатора lazy
. Это не будет выполнено, пока значение не получено.
class ReportView: NSView {
var categoriesPerPage = [[Int]]()
lazy var numPages: Int = { return categoriesPerPage.count }()
}
теперь компилятор доволен!
numPages
а не замыкание, удалите знак равенства:var numPages: Int { return categoriesPerPage.count }