У меня есть этот массив с некоторыми UIColors:Как получить UIColor из ассоциативного массива в Swift
let colors = [
35302: UIColor(red: 66/255, green: 55/255, blue: 101/255, alpha: 1),
53350: UIColor(red: 158/255, green: 218/255, blue: 222/255, alpha: 1),
54747: UIColor(red: 158/255, green: 222/255, blue: 189/255, alpha: 1)
]
Теперь я пытаюсь получить доступ к какому-то индексу в массиве:
func locationManager(manager: CLLocationManager!, didRangeBeacons beacons: [AnyObject]!, inRegion region: CLBeaconRegion!) {
let knownBeacons = beacons.filter{ $0.proximity != CLProximity.Unknown }
if(knownBeacons.count > 0) {
let closestBeacon = knownBeacons[0] as! CLBeacon
self.view.backgroundColor = self.colors[closestBeacon.minor]
}
}
Линия :
self.view.backgroundColor = self.colors[closestBeacon.minor]
Я получаю эту ошибку:
Cannot subscript a value of type '[Int: UIColor]' with an index of type 'NSNumber'
Я пытаюсь создать HelloWorld с моими новыми маяками, и я застрял в этой части. Я хотел бы понять, как это действительно работает.
Благодаря
Термин Swift/Objective-C для объекта коллекции вы используете словарь, а не «ассоциативный массив». Это хорошая идея, чтобы узнать «родные» условия для вещей. (Не пытаюсь быть трудным. Я знаком с термином ассоциативный массив из информатики, но он все равно бросил меня на мгновение.) –