我正在读取由不同信标生成的一些值,比方说信标1和信标2。我想分别收集每个信标的值。
我认为,如果有一种使用where语句的方式会更容易,例如 在beacon = 1时获取值,然后在beacon = 2时获取值
据我了解: 首先,我创建了多向数组:
var values = [[Int]]()
var tempBeacon = [Int]
然后,一个for循环为i信标收集一些值:
for i in 0...beaconCount-1 {
let beacon = beacons[i]
values[i] = tempBeacon.append(beacons[i].value)
}
谢谢大家,请原谅我的编程技能。
答案 0 :(得分:2)
我倾向于将这个问题当作数组的字典来处理。字典中的每个键都将代表信标,并且存储在每个键处的数组将包含该信标的值。使用字典可以轻松找到需要为其添加新条目的信标。
这是操场上的实用示例:
func addBeaconEntry(beaconName: String, newValue: Int) {
if beaconData[beaconName] == nil {
// Beacon is not yet in dictionary, so we create an array
beaconData[beaconName] = [Int]()
}
beaconData[beaconName]?.append(newValue)
}
// Dictionary of array of integers for beacon values
var beaconData = [String: [Int]]()
addBeaconEntry(beaconName: "beacon 1", newValue: 10)
addBeaconEntry(beaconName: "beacon 2", newValue: 20)
addBeaconEntry(beaconName: "beacon 3", newValue: 30)
addBeaconEntry(beaconName: "beacon 1", newValue: 1120)
print(beaconData)
print("Data for beacon 1:")
print(beaconData["beacon 1"] ?? [0])