Swift:Method不知道它接受了一个String

时间:2015-07-29 21:29:53

标签: ios string swift

我正在为我的项目制作一个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语句,我仍然会收到错误。我想了解为什么会这样,以及如何在将来避免它。

1 个答案:

答案 0 :(得分:1)

我定义了一个实例方法而不是一个类型方法。在函数声明工作之前添加classclass func JSONFromURL(url: String) -> NSDictionary? {...}