“错误”教程书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 exception
和 but need to use swift exceptions syntax instead
@EricD。首先,我只是从问题中复制粘贴的代码,以显示应该如何更改它才能正常工作。而且我看不出我的回答中哪里说快速错误是例外。我也可以复制一些随机的行并说在这里。
@EricD。另外我还没有定义 dataValue 变量,所以它不会编译。你看到了吗?以上是关于“错误”教程书IOS 8 SDK开发第二版中的NSJSONSerialization额外参数[重复]的主要内容,如果未能解决你的问题,请参考以下文章