Ios Swift方法loadJSONFromBundle出错

Ios Swift方法loadJSONFromBundle出错,ios,json,swift2,Ios,Json,Swift2,我得到一个错误: 类型“Dictionary”没有成员loadJSONFromBundle 知道有什么问题吗 init(filename: String) { if let dictionary = Dictionary<String, AnyObject>.loadJSONFromBundle(filename) { if let tilesArray = dictionary["tiles"] as? [[Int]] { for

我得到一个错误:

类型“Dictionary”没有成员loadJSONFromBundle

知道有什么问题吗

init(filename: String) 
{
    if let dictionary = Dictionary<String, AnyObject>.loadJSONFromBundle(filename) {
        if let tilesArray = dictionary["tiles"] as? [[Int]] {
            for (row, rowArray) in enumerate(tilesArray as! [[Int]]) {
                let tileRow = NumRows - row - 1
                for (column, value) in enumerate(rowArray) {
                    if value == 1 {
                        tiles[column, tileRow] = Tile()
                    }
                }
            }
        }
    }
}
init(文件名:String)
{
如果let dictionary=dictionary.loadJSONFromBundle(文件名){
如果让tilesArray=dictionary[“tiles”]as?[[Int]]{
对于枚举中的(行,行数组)(TileArray as![[Int]]){
设tileRow=NumRows-row-1
枚举(行数组)中的(列,值){
如果值==1{
tiles[列,tileRow]=Tile()
}
}
}
}
}
}

。loadJSONFromBundle
不是字典中的默认方法。这可以通过扩展字典来添加。以下是我在Swift 3中的实现:

import Foundation

extension Dictionary {
    static func loadJSONFromBundle(filename: String) -> Dictionary<String, AnyObject>? {
        if let path = Bundle.main.path(forResource: filename, ofType: "json") {
            var error: NSError?
            do {
                let data: NSData? = try NSData(contentsOf: URL(fileURLWithPath: path), options: NSData.ReadingOptions())
                if let data = data {
                    let dict: Any? = try JSONSerialization.jsonObject(with: data as Data, options: JSONSerialization.ReadingOptions())
                    if let dict = dict as? Dictionary<String, AnyObject> {
                        return dict
                    }
                    else {
                        print("file '\(filename)' is not vaild JSON: \(error!)")
                        return nil
                    }
                }
            }
            catch {
                print("could not load file '\(filename)'")
                return nil
            }
        }
        else {
            print("could not find level file '\(filename)'")
            return nil
        }
    }
}
<代码>导入基础 扩展字典{ 静态函数loadJSONFromBundle(文件名:String)->字典{ 如果let path=Bundle.main.path(forResource:filename,of type:“json”){ var错误:N错误? 做{ 让数据:NSData?=尝试NSData(内容:URL(fileURLWithPath:path),选项:NSData.ReadingOptions()) 如果let data=data{ 让dict:Any?=尝试JSONSerialization.jsonObject(使用:data作为数据,选项:JSONSerialization.ReadingOptions()) 如果让dict=dict as?字典{ 返回指令 } 否则{ 打印(“文件“\(文件名)”无效JSON:\(错误!)) 归零 } } } 抓住{ 打印(“无法加载文件“\(文件名)”) 归零 } } 否则{ 打印(“找不到级别文件“\(文件名)”) 归零 } } }
没有像加载JSONFROMBUNDLE这样的方法。您在哪里看到这种方法被记录在案?