文档章节

swift 2.0中NSJSONSerialization的使用

hejunbinlan
 hejunbinlan
发布于 2015/06/27 23:09
字数 198
阅读 17
收藏 0

swift 2.0中使用NSJSONSerialization需要处理异常,否则会报错。具体的使用方式如下:

    func loadDataSource() {

        let url = NSURL(string: APIURL)

        let request = NSURLRequest(URL: url!)

        NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue()) { (response, data, error) -> Void in

            

            if error != nil {

                print(error)

                return

            }


            do {

                if let json = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as? NSDictionary {

                    

                    if let newsArray = json["item"] as? NSArray {

                        var newsItems = [NewsItem]()

                        for item in newsArray {

                            let newsItem = NewsItem()

                            newsItem.id = item["id"] as? String

                            newsItem.title = item["title"] as? String

                            newsItem.thumb = item["thumb"] as? String

                            newsItems.append(newsItem)

                        }

                        //在主线程中更新数据

                        dispatch_async(dispatch_get_main_queue(), { () -> Void in

                            self.dataSource = newsItems

                            self.tableView.reloadData()

                        })

                        

                    }

                }

            } catch let error as NSError {

                print("error:\(error)")

            } catch {

                //默认错误

                print("解析数据出现异常")

            }

            

        }

    }

官网参考:

1、https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/AdoptingCocoaDesignPatterns.html#//apple_ref/doc/uid/TP40014216-CH7-ID10

2、https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html#//apple_ref/doc/uid/TP40014097-CH42-ID508

© 著作权归作者所有

共有 人打赏支持
hejunbinlan
粉丝 41
博文 596
码字总数 21569
作品 0
浦东
高级程序员
私信 提问
Call can throw, but it is not marked with 'try'

执行代码 报错内容 Call can throw, but it is not marked with 'try' and the error is not handled Extra argument ‘error’ in call 运行环境: Xcode Version 7.1 (7B91b) 修改后的代码......

王永濤
2015/10/26
0
0
NSJSONSerialization 介绍

ios5中apple增加了解析JSON的api——NSJSONSerialization。网上已经有人做过测试,NSJSONSerialization在效率上完胜SBJSON、TouchJSON、YAJL、JSONKit、NextiveJson。详情见这里。既然apple...

鉴客
2012/08/13
575
0
IOS中Json解析的四种方法

作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式。 有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验(点击打开链接)...

卢西安
2012/10/12
0
4
iOS中关于json解析的5中方式

作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式。 有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验(点击打开链接)...

meilidashijie
2013/01/05
0
1
Swift-使用NSJSONSerialization生成或解析JSON数据

NSJSONSerialization是iOS5中增加的解析JSON的API. NSJSONSerialization提供了将JSON数据转换为Foundation对象(一般都是NSDictionary和NSArray)和 Foundation对象转换为JSON数据. 在将Fou...

王永濤
2015/10/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

4.57 MariaDB慢查询日志 4.58 Tomcat_JDK部署 4.59 zrlog安装 4.60 Nginx代理Tomcat

4.57 MariaDB慢查询日志 为什么要配置慢查询日志? 目的是为了帮助我们分析MariaDB的瓶颈点。 如何配置? 1)进入MariaDB里面执行:show variables like 'slow%';show variables li...

Champin
今天
3
0
自动机器学习简述(AutoML)

为什么需要自动机器学习 对于机器学习的新用户而言,使用机器学习算法的一个主要的障碍就是算法的性能受许多的设计决策影响。随着深度学习的流行,工程师需要选择相应的神经网络架构,训练过...

naughty
今天
2
0
Android Studio Unable to resolve dependency for错误的排查

记录一次Android Studio Unable to resolve dependency for错误的排查 Android Studio 3.2.1 错误提示 Unable to resolve dependency for... 原因:在gradle中设置的代理并没有gradle 4.6的版......

Gemini-Lin
今天
0
0
java常用设计模式

设计模式; 一个程序员对设计模式的理解: “不懂”为什么要把很简单的东西搞得那么复杂。后来随着软件开发经验的增加才开始明白我所看到的“复杂”恰恰就是设计模式的精髓所在,我所理解的“...

呵呵哒灬
今天
5
0
Kafka入门

1、Kafka使用背景 在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户的搜索关键词...

watermelon11
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部