我正在为我的项目制作一个JSON Parser类。我有一个名为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语句,我仍然会收到错误。我想了解为什么会这样,以及如何在将来避免它。
答案 0 :(得分:1)
我定义了一个实例方法而不是一个类型方法。在函数声明工作之前添加class
。 class func JSONFromURL(url: String) -> NSDictionary? {...}