О переносе приложения iOS в Swift 3.0. Вот один вопрос, с которым я столкнулся.Тип '[XYZ]!' не имеет подстрочных индексов
Сначала соответствующий код:
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] ...] '? – Satachito
Я могу показать someInfoArray, но что бы это ни было "(item.valueForKey (" keyOne ") as! Int)" должен быть Int, остальное не должно иметь значения. Я ошибаюсь? – Michel
Теперь вы можете увидеть, откуда появился someInfoArray. – Michel