我正在努力处理我的应用程序,它处理公交路线。我得到的是,在每一个公共汽车站,从那里出发的公共汽车的每一个未来出发,出发包括方向和出发时间。我希望能够让公交车始终离开一个给定的方向,到目前为止我已经通过创建嵌套字典来完成它,但是,我想知道你是否可以更聪明地做到这一点?这是我到目前为止所得到的
var dict = [String: [String : [String]]]()
所以它会是这样的:
var dict = ["Busname": ["Direction" : ["time1", "time2", "time3"]]]()
有更聪明的方法吗?或者这是要走的路?我想得到给定公共汽车离开指定方向的列表。
答案 0 :(得分:1)
您可以使用结构而不是字典。
快速举例,让我们制作一个Bus对象:
struct Bus {
var name: String
var direction: String
var times: [NSDate]
}
它包含每条总线的值:总线名称,方向以及公交车时间的日期数组。
当然这只是一个例子,你必须适应你的用例。
你创建你的公共汽车:
let bus1 = Bus(name: "Busey MacBusface", direction: "Somewhere", times: [...some dates...])
let bus2 = Bus(name: "Gary Bussey", direction: "Nowhere", times: [...some dates...])
您可以将它们放入集合中:
let todayBusses = [bus1, bus2]
易于过滤:
let allDirections = todayBusses.map { $0.direction }
let allTimes = todayBusses.map { $0.times }
let someBusses = todayBusses.filter { $0.times.contains({ (date) in
// compare 'date' with other date(s)
}) }
let notNowhere = todayBusses.filter { $0.direction != "Nowhere" }
等
同样,这只是一个简单的例子,但我认为它可以给你一些想法。
“公交车特定名称的时间”将类似于:
let times = todayBusses.filter { $0.name == "theBusName" }.map { $0.times }