IOS 应用程序性能太慢,无法使用 swiftyjson 解析数据
IOS app Performance is too slow for parse data with swiftyjson
我使用 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)
}
}
您可以在后台线程中调用函数 parseJSON
并在其完成后 return 返回主线程(以相应地更新 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
}
希望对您有所帮助。
我使用 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)
}
}
您可以在后台线程中调用函数 parseJSON
并在其完成后 return 返回主线程(以相应地更新 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
}
希望对您有所帮助。