【发布时间】:2016-12-15 02:03:58
【问题描述】:
关于将 iOS 应用程序迁移到 Swift 3.0 的过程。这是我面临的一个问题。
先是相关代码:
struct OnlineBox {
var vf1,vf2:CGFloat!
var vs1:String!
}
var myOnlineInfo:[OnlineBox]!
func doSomeWork() {
myOnlineInfo = [OnlineBox](repeating: OnlineBox(vf1: 0.0, vf2: 0.0, vs1: ""), count: 11)
// below someInfoArray comes from querying a Core Data Entity:
for item in someInfoArray {
myOnlineInfo[(item.valueForKey("keyOne") as! Int) - 1].vf1 = item.valueForKey("vf1") as! CGFloat
myOnlineInfo[(item.valueForKey("keyOne") as! Int) - 1].vf2 = item.valueForKey("vf2") as! CGFloat
myOnlineInfo[(item.valueForKey("keyOne") as! Int) - 1].vs1 = item.valueForKey("vs1") as! String
}
}
第二个问题:
我收到这条神秘的错误消息,循环内的 3 行:
Type '[OnlineBox]!' has no subscript members
换句话说,数组没有下标成员。我不太明白。
我需要如何修改代码?
【问题讨论】:
-
显示你的 someInfoArray。是不是像'[ [“keyOne”:1,“vf1”:0.0 ...],[“keyOne”:2,“vf1”:0.0] ...]'?
-
我可以显示 someInfoArray,但无论它是什么“(item.valueForKey("keyOne") as!Int)”都应该是一个 Int,其余的都不重要。我错了吗?
-
您现在可以看到 someInfoArray 的来源。