【发布时间】:2019-11-08 15:50:48
【问题描述】:
我有一个协议Food,其中包含名称和价格。
结构体Fruit 正在实现这个协议,并有另一个名为color 的特定变量。
一个类Fridge(我的ViewController)可以包含每一种食物,所以变量food的数据类型是Food。
在第一步中,我将food 变量设置为一个新的Fruit。
fridge.food = Fruit(name: "Apple", price: 0.99, color: "Yellow")
然后在我的 VC Fridge 中,我想用以下代码修改水果颜色:
var fruit = fridge.food as! Fruit
fruit.color = "Red"
稍后,当我想检索它返回“黄色”的信息时:
var fruit = fridge.food as! Fruit
print(fruit.color)
//prints Yellow
现在的问题是如何正确更改该castet 对象的值?
【问题讨论】:
-
你确定这些是类而不是结构吗?
-
使用带有
vars 的结构或类,它按预期工作。是否存在您可能正在重新分配或可能不会触发更改的地方?