【发布时间】:2016-06-27 13:54:59
【问题描述】:
这是我的代码。
我有一个模型,其中包含另一个模型的数组。
class MyModel{
var arrSubModel = [SubModel]()
}
class SubModel{
var value1 = String()
var value2 = String()
}
现在在我的班级中,我有 2 个变量用于保存 MyModel 数组。
class MyVC:UIViewController {
var arrMyModel = [MyModel1,MyModel2,MyModel3]
var arrFilterModel = []
func filter() {
arrFilterModel = []
for model in arrMyModel {
for subModel in model.arrSubModel {
if conditionMet {
//doNothing
} else {
//remove that subModel
model.arrSubModel.removeObject(subModel)
}
}
arrFilterModel.append(model)
}
}
}
但是当我再次访问arrMyModel 时,arrSubModel 已从中删除,但它应该只从 arrFilterModel 中删除。
我觉得我做错了什么。 希望大家帮忙。
谢谢。
【问题讨论】:
-
你的缩进喝醉了。
-
当您对数组执行 for 循环 (
model.arrSubModel) 时,您永远不应该从数组中删除/插入元素。你会有意想不到的行为/内容。 -
你到底想达到什么目的?什么是示例输入和示例输出?
-
你的代码真的很难阅读,因为你已经把它概括得太多了。你想做什么?
-
@CodeDifferent,所以基本上我试图根据某些条件过滤
arrMyModel并将其设置为arrFilterModel。当我在arrMyModel上过滤 String、Int 等变量时,一切正常。但是当我更改arrFilterModel中的数组时,它也会更新arrMyModel中的数组,希望它能让一切变得清晰。
标签: arrays swift for-loop model