“错误”教程书IOS 8 SDK开发第二版中的NSJSONSerialization额外参数[重复]

Posted

技术标签:

【中文标题】“错误”教程书IOS 8 SDK开发第二版中的NSJSONSerialization额外参数[重复]【英文标题】:NSJSONSerialization Extra argument in 'error' tutorial book IOS 8 SDK Development 2nd Edition [duplicate] 【发布时间】:2016-01-14 14:01:57 【问题描述】:

摘自第 6 章末尾 Chris Adamson 所著的《ios 8 SDK Development 2nd Edition》一书。

我对错误调用有疑问,以及我如何将它从旧的 swift 转换为新的 swift,使用 do.. 并尝试这里是我的代码块

func handleTwitterData (data: NSData!, urlResponse: NSHTTPURLResponse!, error: NSError!) 
    if let dataValue = data 
        var parseError : NSError? = nil
        let jsonObject : AnyObject? =  NSJSONSerialization.JSONObjectWithData(dataValue, options: NSJSONReadingOptions(0), error: &parseError)
        print("JSON error: \(parseError)\nJSON response: \(jsonObject)")
 else 
    print("handleTwitterData received no data")
    

【问题讨论】:

【参考方案1】:

在 swift 2.0 中你不会使用错误参数。

如果objective-c函数的最后一个参数为NSError**,swift 2.0将其删除并将其标记为可以抛出异常的函数。

所以你不需要写那个参数,但是需要使用 swift exceptions 语法来代替。

do 
    let jsonObject : AnyObject? = try NSJSONSerialization.JSONObjectWithData(dataValue, options: NSJSONReadingOptions(0))
 catch 
    print("\(error)")

【讨论】:

Swift 错误也不例外。无论如何,这个问题已经有了很多好的答案。 @EricD。我在哪里写过 swift 错误是例外? 在你的回答中,两次:function that can throw exceptionbut need to use swift exceptions syntax instead @EricD。首先,我只是从问题中复制粘贴的代码,以显示应该如何更改它才能正常工作。而且我看不出我的回答中哪里说快速错误是例外。我也可以复制一些随机的行并说在这里。 @EricD。另外我还没有定义 dataValue 变量,所以它不会编译。你看到了吗?

以上是关于“错误”教程书IOS 8 SDK开发第二版中的NSJSONSerialization额外参数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

《Flask 入门教程》第二版发布

iOS 7教程学习iOS 8?

unity接入quick sdk报错总结(ios第二版)

unity接入quick sdk报错总结(ios第二版)

unity接入quick sdk报错总结(ios第二版)

Python核心编程这本书的一些错误