如何解决错误:在xcode12和swiftui中"Cannot use mutating member on immutable value: 'users' is a get-only prop



当我试图附加到配置文件模型中的一个数组时,会出现上述错误。

这是我的个人资料型号代码:

import Foundation
struct UserProfile: Codable {
var firstName: String
var lastName: String
var age: Int16
var password: String
var email: String


}
extension UserProfile {
static var users: [UserProfile] {
[
UserProfile(firstName: "aryan", lastName: "chordia", age: 21, password: "123", email: "aryanchordia@gmail.com"),
UserProfile(firstName: "tyler", lastName: "duic", age: 21, password: "123", email: "tduic@andrew.cmu.edu"),
]
}
}
extension UserProfile {
struct Data {
var firstName: String = ""
var lastName: String = ""
var age: Int16 = 21
var password: String = ""
var email: String = ""
}

var data: Data {
return Data(firstName: firstName, lastName: lastName, age: age, password: password, email: email)
}
}

以下是我如何尝试在SignUpView.swift 中附加到我的UserProfile.users数组

func signup() -> Bool {
let user = UserProfile(firstName: userData.firstName, lastName: userData.lastName, age: 21, password: userData.password, email: userData.email)
UserProfile.users.append(user)
return true
}

非常感谢您的帮助!

您在这里使用的是computed属性。因此,该值是计算出来的,您不能设置它

您可以使用类似的函数创建数组,也可以立即使用正确的值声明:

static var users: [UserProfile] = {
[
UserProfile(firstName: "aryan", lastName: "chordia", age: 21, password: "123", email: "aryanchordia@gmail.com"),
UserProfile(firstName: "tyler", lastName: "duic", age: 21, password: "123", email: "tduic@andrew.cmu.edu"),
]
}()

最新更新