我正在为我的项目制作一个独特的 JSON 解析器类。我有一个名为 JSONFromURL
的方法,它接受一个 String
并返回可选的 NSDictionary?
。但是,当我从另一个类调用该方法时,出现编译器错误:Cannot invoke 'JSONFromURL' with argument list of type '(String)'
这是我的 JSONFromURL 方法:
func JSONFromURL(url: String) -> NSDictionary? {
var endpoint = NSURL(string: url)
var data = NSData(contentsOfURL: endpoint!)
do {
let jsonData = try NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.MutableContainers ) as! NSDictionary
// use jsonData
return jsonData
} catch {
// report error
}
return nil //returns nil, no JSON was found
}
这是我从一个单独的类中调用它的方式:
if let users = JSONParser.JSONFromURL("https://api.myjson.com/bins/2nkay") {}
即使我有 if 语句,我仍然得到错误。我想了解为什么会发生这种情况,以及将来如何避免这种情况。
最佳答案
我定义了一个实例方法而不是类型方法。在函数声明生效之前添加 class
。 class func JSONFromURL(url: String) -> NSDictionary? {...}
关于ios - Swift:方法不知道它接受一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31711495/