swift - [Swift[如何遍历对象的所有属性
问题描述
我有一个定义了大约 15 个属性的对象。我正在尝试遍历所有不等于零且类型为 Int 或 Double 的属性。像这样的东西:
/*
object.price1 = 10.0
object.price2 = 9.9
object.price3 = 8.9
object.price4 = 10.1
object.name = "banana"
object.type = "fruit"
object.quantitySold = 0
object.dateIntroduced = ""
*/
let banana = object()
for property in banana {
object.property = property*2
}
关于如何做到这一点的任何想法?
解决方案
将价格设为数组?这是来自我的手机,请检查是否有错误。不利的一面是它会变得多么混乱以及保持井井有条是多么困难。
class MyProduct{
var price1 : Int
var price2 : Int
var price3 : Int
var pricesArray : [Int]
init(price1 : Int, price2 : Int, price3 : Int, pricesArray : [Int]){
self.price1 = price1
self.price2 = price2
self.price3 = price3
for i in 0...2
{ pricesArray.append(0)}
pircesArray[0] = price1
pricesArray[1] = price2
pricesArray[2] = price3
self.pricesArray = pricesArray
}_
//then to go over it like
for i in 0...3{
banana.pricesArray[i] = banana.procesArray[i] * 2
}
或者你可以在产品类中创建一个函数
func equate( sum : Int)
{
yourVar = yourVar * sum
}
推荐阅读
- c++ - 只使用一个指针来初始化数组中的元素?
- swift - Xcode:停止编译代码行/函数
- r - 查找第二大列名
- .htaccess - 使用 htacess 重写作为 CNAME 的 URL
- python - 模型的 Keras 输出张量必须是 Keras `Layer` 的输出(因此保存过去的层元数据)
- javascript - javascript 键盘事件代码“浏览器搜索”
- python - Dask on single OSX machine - is it parallel by default?
- angular - 如何将参数传递给 JHipster 中的自定义错误消息?
- ios - Xcode:配置文件不包括 application-identifier 和 keychain-access-groups 权利
- jenkins - bosh实例的IP-cloud Foundry