【发布时间】:2015-06-28 08:05:25
【问题描述】:
在已经通过 swiftyjson 解析了我的数据之后,我希望在 uitableview 中显示解析的信息。假设我有一个从 json 文件中解析出来的名称列表。我希望这些名称分别显示在各自的单元格中,以允许用户查看所有名称。
我还假设,如果他们在解析后选择了正在显示字符串的选定单元格,我实际上可以将这些单元格存储到核心数据对象中,并将它们存储为可返回的字符串?问题是我在创建的数组上使用了 .append 函数,我们将调用 names = [String]() 以实际允许值按单元格的顺序排列。
但是当我这样做时,我注意到 cpu 使用率出现了巨大的峰值,因为它一直在附加它们,让我们说名字是马特,第二个名字是约翰等等,然后它每次都会创建一个新的数组情况。所以第一次它只读取 matt 然后下一个 println 将打印出 matt, john 然后下一个打印出 matt, john, tom 等等,直到完成 json 名称列表。
如果我有 500 个或更多名称,则 cpu 需要一段时间才能将所有这些名称处理到数组中。我知道必须有另一种方法,但我看到的所有引用都使用 .append 方法。所以我的代码是names.append(Name)。 Name 是从 swiftyjson 解析的字符串。从那里我实际上能够填充表格视图,这很好,它最终可以正确显示,但是设备需要一段时间才能填充,因为它首先需要在每次调用解析时添加所有 500 个名称。我希望每次都重新检查 500 个名称,以防添加新名称。这一切目前已经存储为本地 json 文件。
我正在使用的代码如下,我可以找出 UItableview 部分,但更多的是一个问题,即附加数组是否是显示来自 swiftyjson 的已解析数据的最佳和最有效的方式。
let path = NSBundle.mainBundle().pathForResource("List", ofType: "json")
let jsonData = NSData(contentsOfFile: path!, options: NSDataReadingOptions.DataReadingMappedIfSafe, error: nil)
let json = JSON(data: jsonData!)
for (key, subJson) in json["array"] {
if let Name = subJson["Name"].string {
NameList.append(Name)
println(NameList)
}
}
【问题讨论】:
标签: swift swifty-json