首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IOS应用程序的性能太慢,无法用swiftyjson解析数据。

IOS应用程序的性能太慢,无法用swiftyjson解析数据。
EN

Stack Overflow用户
提问于 2016-03-08 19:21:56
回答 1查看 1.8K关注 0票数 0

我用“斯威夫特”创建了应用程序,并使用了“迅捷”。但是当我解析图像时,它有点慢,如何提高速度。你能帮我一下吗?我将在下面分享我的代码,谢谢。

代码语言:javascript
复制
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)

        }


    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-12 16:00:01

您可以在后台线程中调用函数parseJSON,并在它完成后返回到主线程(相应地更新UI或其他内容)。

代码语言:javascript
复制
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。如果您使用此框架,您可以编写如下简单的代码。

代码语言:javascript
复制
Async.background {
    // Perform data parsing
    parseJSON()
}.main {
    // Update UI on main thread
}

希望它能帮到你。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35876192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档