1. ホーム
  2. swift

[解決済み】インスタンスメンバを型で使用することができない

2022-02-23 02:56:14

質問

以下のようなクラスがあります。

class ReportView: NSView {  
    var categoriesPerPage = [[Int]]()
    var numPages: Int = { return categoriesPerPage.count }
}

というメッセージが表示され、コンパイルに失敗しました。

インスタンスメンバー 'categoriesPerPage' は、タイプ 'レポートビュー'

これはどういうことでしょうか?

どのように解決するのですか?

という文法エラーが発生するだけです。 = {return self.someValue} . その = は必要ありません。

使用する。

var numPages: Int {
    get{
        return categoriesPerPage.count
    }

}

ご希望の方は だけ取得する と書くことができます。

var numPages: Int {
     return categoriesPerPage.count
}

のようにオブザーバを追加することもできます。 set willSet &です。 didSet

var numPages: Int {
    get{
        return categoriesPerPage.count
    }
    set(v){
       self.categoriesPerPage = v
    }
}

を使用できるようにしました。 = operator セッターとして

myObject.numPages = 5