首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程1:解析rest http响应时的EXC_BAD_INSTRUCTIONS

线程1:解析rest http响应时的EXC_BAD_INSTRUCTIONS
EN

Stack Overflow用户
提问于 2014-06-26 21:32:44
回答 1查看 221关注 0票数 1

我制作了一个小型测试应用程序,通过rest从服务器获取用户数据。服务器以JSON数据的形式响应数据。问题是,当im试图解析用户类中的数据时,我的应用程序会与execpion崩溃:

代码语言:javascript
复制
Thread 1: EXC_BAD_INSTRUCTIONS

当我解析视图控制器中的json数据时,它可以工作。以下是崩溃代码的预览:

ViewController.swift:

代码语言:javascript
复制
func connectionDidFinishLoading(connection: NSURLConnection!) {
    var dataAsString: String = NSString(data: self.data, encoding: NSUTF8StringEncoding)
    var err: NSError
    var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, 
                                   options: NSJSONReadingOptions.MutableContainers,
                                   error: nil) as NSDictionary
    var results: NSDictionary    = jsonResult["results"] as NSDictionary
    var userData: NSDictionary   = results["user"] as NSDictionary

    let user: User = User(initFromJSONData: userData)

User.swift:

代码语言:javascript
复制
init(initFromJSONData user: NSDictionary) {
    self.id = user["id"] as Int

它以Int的形式崩溃到用户“id”。当我在ViewController上做同样的事情时,它就起作用了。有人能解释一下为什么是这样的吗?应该怎么做呢?

谢谢大家!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-27 05:49:40

NSNumber不能直接转换到Int。试试这个:

代码语言:javascript
复制
let id = user["id"] as NSNumber
self.id = id.integerValue
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24440621

复制
相关文章

相似问题

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