IOS应用程序性能太慢,无法使用swiftyjson解析数据[关闭]
Posted
技术标签:
【中文标题】IOS应用程序性能太慢,无法使用swiftyjson解析数据[关闭]【英文标题】:IOS app Performance is too slow for parse data with swiftyjson [closed] 【发布时间】:2016-03-08 19:21:56 【问题描述】:我用 swift 创建了应用程序,并为此使用了 swiftyjson。但是当我解析图像时它有点慢我怎样才能提高这个速度。你能帮帮我吗?我将在下面分享我的代码谢谢。
func parseJSON()
let path : String = NSBundle.mainBundle().pathForResource("jsonFile", ofType: "json") as String!
let jsonData = NSData(contentsOfFile: path) as NSData!
let readableJSON = JSON(data: jsonData, options: NSJSONReadingOptions.MutableContainers, error: nil)
var Name = readableJSON[passedValue,"Product","Ad"]
NumberofRow = readableJSON[passedValue].count
for i in 1...NumberofRow
var Person = "Product"
Person += "\(i)"
var Name = readableJSON[passedValue][Person]["Ad"].string as String!
var Age = readableJSON[passedValue][Person]["Fiyat"].string as String!
var Image1 = readableJSON[passedValue][Person]["URL"].string as String!
NamesArray.append(Name)
AgeArray.append(Age)
Imagearray.append (Image1)
【问题讨论】:
忘记 SwiftyJSON 或任何其他包装器/框架。目前,没有什么比 Foundation 的 NSJSONSerialization 更快地反序列化 JSON 数据了。 但我不知道如何使用 NSJSONSerialization 解析数据,因为我知道基础不支持从 url 获取图像 你无法解析图片,解析 JSON 通常非常快,并且是由系统框架完成的(所以,你也不要自己做)。我怀疑有些误解。你应该澄清你的问题到底是什么。 我有 json 数据和图像,如 url 我从 json 获取 url 并分配给图像视图。但是当我在等待上传图片对我来说太慢了,我需要让它更快 在 JSON(简单的结构化文本)中,“URL”将表示为 JSON String。此 URL 字符串必须经过正确 编码,才能在需要 URL 参数的系统框架中使用。您可以使用 NSJSONSerialization 解析 JSON 并获取该 JSON 的 representation,它是 NSDictionary 或包含其他 JSON 表示的 NSArray,例如字符串、布尔值、JSON 对象和 JSON 数组等 【参考方案1】:您可以在后台线程中调用函数parseJSON
,并在完成后返回主线程(以相应地更新 UI 或其他内容)。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
// Perform data parsing
parseJSON()
dispatch_async(dispatch_get_main_queue(), () -> Void in
// Update UI on main thread
)
)
如果您想尝试这种方法,我建议您使用开源框架以更轻松地使用 GCD。例如https://github.com/duemunk/Async。如果你使用这个框架,你可以像下面这样简单地编写。
Async.background
// Perform data parsing
parseJSON()
.main
// Update UI on main thread
希望对你有所帮助。
【讨论】:
谢谢你,这正是我想要的 =)以上是关于IOS应用程序性能太慢,无法使用swiftyjson解析数据[关闭]的主要内容,如果未能解决你的问题,请参考以下文章