Swift 如何从关联数组获取 UIColor
How to get a UIColor from Associative Array in Swift
我有这个带有一些 UIColors 的数组:
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{ [=12=].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'
我正在尝试用我的新 Beacon 制作一个 HelloWorld,但我被困在了这一部分。
我想了解这是如何工作的。
谢谢
看起来,closestBeacon.minor 是一个 NSNumber,而颜色是由 Int 索引的。
您可以使用 closestBeacon.minor.integerValue
您使用 NSNumber
但数组需要 Int
作为索引。选择以下选项之一:
self.view.backgroundColor = self.colors[closestBeacon.minor as Int]
self.view.backgroundColor = self.colors[closestBeacon.minor.integerValue]
self.view.backgroundColor = self.colors[Int(closestBeacon.minor)]
你也可以看看这个问题Swift convert object that is NSNumber to Double
我有这个带有一些 UIColors 的数组:
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{ [=12=].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'
我正在尝试用我的新 Beacon 制作一个 HelloWorld,但我被困在了这一部分。 我想了解这是如何工作的。
谢谢
看起来,closestBeacon.minor 是一个 NSNumber,而颜色是由 Int 索引的。
您可以使用 closestBeacon.minor.integerValue
您使用 NSNumber
但数组需要 Int
作为索引。选择以下选项之一:
self.view.backgroundColor = self.colors[closestBeacon.minor as Int]
self.view.backgroundColor = self.colors[closestBeacon.minor.integerValue]
self.view.backgroundColor = self.colors[Int(closestBeacon.minor)]
你也可以看看这个问题Swift convert object that is NSNumber to Double