Ios Swift方法loadJSONFromBundle出错
我得到一个错误: 类型“Dictionary”没有成员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
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这样的方法。您在哪里看到这种方法被记录在案?