我有以下课程:

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

编译失败,出现以下消息:

实例成员"categoriesPerPage"不能用于类型

这是什么意思?

推荐答案

你只是说= {return self.someValue}的时候有语法错误.不需要=.

使用:

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

}

如果你想要get only,你可以写

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

Swift相关问答推荐

防止NavigationLink自行返回导航视图

如何避免使用DispatchSemaphores时线程爆炸?

像WebSocket一样接收实时更新,但通过异步/等待或组合

调度组是否阻止iOS中的主线程?

如何从 RC 加载场景作为 ModelEntity 而不是普通实体?

使第二个视图变灰 SwiftUI

如何将视图添加到多行文本视图的末尾?

确定路径是否相交的有效方法

是否可以使用 .task 修饰符更新基于两个值的视图

并发执行代码中捕获的 var 的变异

如何在 Swift 中对单个单词进行词形还原

Swift 中的Combine和didSet有什么区别?

SwiftUI View Builder 参数无法更改状态

在 SwiftUI 中操作绑定变量

如何获得不同的插入和移除过渡动画?

调整文本的字体大小以适应 UIButton

无法推断泛型参数的参数

UIButton 标题左对齐问题 (iOS/Swift)

UISearchbar TextField 的高度可以修改吗?

快速延迟加载属性