Json 找不到';地点数据';范围内

Json 找不到';地点数据';范围内,json,parsing,swiftui,Json,Parsing,Swiftui,(如果需要-以下代码包含在我的'Data.swift'文件中,这是'SearchRedirect.swift'中的var'locationsDataTypes'所引用的) 导入UIKit 导入快捷键 导入核心定位 让locationsDataTypes:[locationsDataTypes]=load(“LocationsData.json”) func load(u文件名:String)->T{ 让数据:数据 guard let file=Bundle.main.url(forResourc

(如果需要-以下代码包含在我的'Data.swift'文件中,这是'SearchRedirect.swift'中的var'locationsDataTypes'所引用的)

导入UIKit
导入快捷键
导入核心定位
让locationsDataTypes:[locationsDataTypes]=load(“LocationsData.json”)
func load(u文件名:String)->T{
让数据:数据
guard let file=Bundle.main.url(forResource:filename,扩展名:nil)
否则{
fatalError(“在主捆绑包中找不到\(文件名)。”
}
做{
数据=尝试数据(contentsOf:file)
}抓住{
fatalError(“无法从主捆绑包加载\(文件名):\n\(错误)”)
}
做{
let decoder=JSONDecoder()
返回try decoder.decode(T.self,from:data)
}抓住{
fatalError(“无法将\(文件名)解析为\(t.self):\n\(错误)”)
}
}
最终类图像存储{
typealias\u ImageDictionary=[字符串:CGImage]
fileprivate var图像:_ImageDictionary=[:]
fileprivate静态变量比例=2
静态变量shared=ImageStore()
func图像(名称:字符串)->图像{
let index=\u guaranteImage(名称:name)
返回图像(images.values[index],比例:CGFloat(ImageStore.scale),标签:Text(name))
}
静态func loadImage(名称:String)->CGImage{
警卫
让url=Bundle.main.url(forResource:name,扩展名为:“jpg”),
设imageSource=CGImageSourceCreateWithURL(url为NSURL,nil),
让image=CGImageSourceCreateMageAtIndex(imageSource,0,nil)
否则{
fatalError(“无法从主捆绑包加载图像\(名称).jpg。”)
}
返回图像
}
fileprivate func\u guaranteeImage(名称:字符串)->\u ImageDictionary.Index{
如果let index=images.index(forKey:name){return index}
images[name]=ImageStore.loadImage(名称:name)
返回图像。索引(forKey:name)!
}
} 

正如pawello2222所暗示的那样,
位置数据在任何地方都没有声明

我怀疑您的
列表
视图生成器函数写得不正确

而不是这个

List(LocationsData, id: \.id) { locationsDataTypes in
试试下面的

List(locationsDataTypes, id: \.id) { locationsData in
    ...
                Image(locationsData.imageName)
                    .resizable
    ...
}
其中,
locationsDataTypes
是集合,在您的例子中,
locationsDataTypes
locationsData
的数组是该集合中每个迭代的单个实例

此外,在堆栈溢出中编写问题时,最佳做法是将相关代码包含在问题的代码块中,而不是通过超链接访问。这有很多原因,这里有几个

  • SO社区更容易将您的代码复制并粘贴到他们的解决方案中,作为其响应的一部分,从而为我们节省了大量时间
  • 链接断开,将您的问题留给将来可能有相同问题的任何人而没有上下文

位置数据在任何地方都没有声明。你是说
位置数据类型
List(locationsDataTypes, id: \.id) { locationsData in
    ...
                Image(locationsData.imageName)
                    .resizable
    ...
}