所以,我在Swift中进行编码,并制作了一个名为User的结构。它具有四个类别的特征-名称,电子邮件,关注者数量和活动状态。我可以附加创建的结构变量的值而不会出现问题,只要它们是String或Ints,Dicts等即可。这不会让我附加Bool的值。最初,我将其设置为“ true”,但是在初始化之后,我想将其附加为“ false”。我收到错误消息:“类型'Bool'的值没有成员'append'”。我知道我不允许以与User.name.append(“ Tim”)相同的方式附加它,但是我没有得到的实际上是我can附加它的方式。 Google没有帮助,在SO中进行搜索也没有引起任何注意,Apple关于Structs的文档显示,他们在开始时使用Strings和Bools并在附加Strings而不是在Bools的解释中设置了相似的值。我无法想象这是不可能的,因为情况总是根据情况从真到假变化。如果我删除下面的行,则可以正常编译。
为清楚起见,[userTwo.isAcctive.append(false)是我的错误所在的地方。
任何帮助将不胜感激!
struct User {
let name: String
let email: String?
var followers: Int
var isActive: Bool
init(name: String, email: String, followers: Int, isActive: Bool){
self.name = name
self.email = email
self.followers = followers
self.isActive = isActive
}
func logStatus(){
if isActive == true{
print("\(name) is working hard.")
} else {
print("\(name) has left the earth.")
}
}
}
var userOne = User(name: "Richard", email:("") , followers: 0, isActive: false)
var userTwo = User(name: "Elon", email:("[email protected]") , followers: 2100, isActive: true)
print(userTwo.isActive)
userTwo.isActive.append(false)
userOne.logStatus()
userTwo.logStatus()
追加是将新元素添加到数组。我认为您想更改isActive属性。您可以通过以下方式进行此操作:
var userTwo = User(name: "Elon", email:("[email protected]") , followers: 2100, isActive: true)
userTwo.isActive = false