【发布时间】:2017-06-09 13:31:40
【问题描述】:
在我的模型中,我有一些数组:
var thisArray = [Object]
var thatArray = [Object]
var anotherArray = [Object]
在我的视图控制器中,我想打开一个值来确定我将附加到哪个数组:
var whichArray: [Object]!
switch someValue {
case .thisArray: whichArray = thisArray
case .thatArray: whichArray = thatArray // "He went thatArray!"
case .anotherArray: whichArray = anotherArray
}
whichArray.append(object)
但这当然行不通,因为 Array 是一种值类型。
有没有办法做到这一点?当然我可以做到以下几点:
switch someValue {
case .thisArray: thisArray.append(object)
case .thatArray: thatArray.append(object)
case .anotherArray: anotherArray.append(object)
}
但这太不优雅和多余了!如果周围的代码中还有其他更复杂的事情发生,那就更是如此了。
这里有解决办法吗?是否可以创建对值类型的引用?
PS。更好的是,虽然确实是它自己的问题,但我是否可以使用案例的 name(例如,someValue = .thisArray 的“thisArray”)按名称设置数组(即,避免整个switch 语句,只需说objectName.append(object) 或类似的东西),但据我所知,这不是一回事。或者这可能吗?也许今天是我的生日?
【问题讨论】:
-
请参阅this answer 到上面链接的问答 - 你总是可以只创建一个
class包装器。 -
Jonathan,如果您收到对 Stack Overflow 有帮助的答案,您应该通过单击其左侧的复选标记将其变为绿色来接受该答案。 meta.stackexchange.com/questions/5234/…
标签: swift