ios - Swift:方法不知道它接受一个字符串

标签 ios string swift

我正在为我的项目制作一个独特的 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 语句,我仍然得到错误。我想了解为什么会发生这种情况,以及将来如何避免这种情况。

最佳答案

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

关于ios - Swift:方法不知道它接受一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31711495/

相关文章:

c - 为什么 `scanf()` 函数将 %s 和 %c 视为同一类型?

java - 非法转义字符后跟空格

ios - 使用 Swift 从 NSString 中查找 String 作为 NSRange 的出现,结果 NSRange 将在 NSAttributedString 中使用

swift - 在继续之前等待查询获取 Firestore 数据

ios - 以编程方式创建 UICollectionView

ios - 使用 JSON 数据滚动问题 TableView

c# - 无法获取单个新行\n

ios - Swift 中的类初始值设定项?

ios - UIViewController 动画 ios?

ios - Google Place API 获取具有食物类型的餐厅列表