在 Objective-C 中,我编写了如下代码:

NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:someDictionary
                                                   options:0
                                                     error:&error];

我正在尝试在 Swift 中做同样的事情。在 Xcode 的语法检查提示下,我是这样写的:
var jsonError: NSError
let jsonData = NSJSONSerialization.dataWithJSONObject(someDictionary, options: NSJSONWritingOptions(), error: &jsonError)

但这给了我一个错误:“找不到接受提供的参数的 init 的重载。”我认为问题可能出在 NSJSONWritingOptions() 位上,我猜我只是 Swift 语法错误。我尝试用 NSJSONWritingOptions() 替换 NSJSONWritingOptions(0) 并得到相同的错误;我尝试用 nil 替换它(如 this answer 所建议的),但出现错误“无法找到接受提供的参数的 __conversion 的重载。”

我如何表明我想要默认的 JSON 写入选项,无论这些选项是什么?

最佳答案

问题不在于 NSJSONWritingOptions;您传递的错误类型应该是 NSError? ,而不是 NSError

关于objective-c - 将 “no options” 传递给 NSJSONWritingOptions 类型的参数的语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24099292/

10-10 20:58