gpt4 book ai didi

ios - 了解分配中结构和类的 Swift 属性的差异

转载 作者:行者123 更新时间:2023-11-28 13:12:44 27 4
gpt4 key购买 nike

我的问题是关于我在编写函数以初始化结构中的可选数组时不断看到的错误,我通过将结构更改为类来解决该错误。我希望有人可以向我解释我对导致此问题的结构和类不了解的地方。这是我的代码。

struct DataStorage {
//When I change this to class DataStorage this works
var listOfVariables = [VariableType]
var allDataPoints: [[DataPoint]]?
init() {
listOfVariables = VariableType.getAllVariables(managedObjectContext)
}
func initializeAllDataPoints() {
//THIS IS THE LINE IN QUESTION
allDataPoints = [[DataPoint]](count: listOfVariables.count, repeatedValue: [DataPoint]())
}
}

因此,函数 initializeAllDataPoints 是导致错误的原因,这确实是这个问题的相关部分。我得到的错误是 Cannot assign to 'allDataPoints' in 'self'。当 DataStorage 是一个结构时,我只会得到这个错误,而当 DataStorage 是一个类时,我不会得到它。我对导致这种行为差异的类和结构有什么不了解?

最佳答案

每当 struct 中的方法修改它自己的属性之一时,您必须使用 mutating 关键字。

我相信如果你写:

mutating func intializeAllDataPoints() { ... }

它应该适合你。

This article提供更多背景信息。

关于ios - 了解分配中结构和类的 Swift 属性的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30720415/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com