swiftui - 如何修复在 Swift 中找不到文件 json
问题描述
我有一个小问题,我尝试解码我的 json 代码,帮助我从https://www.hackingwithswift.com/quick-start/swiftui/swiftui-tutorial-building-a-complete-project获得教程,但我的问题是我的函数没有检测到我的文件,我的错误是“致命错误:无法在包中找到 data.json”,如果有人有解决方案,请提前谢谢
// File decode Json
import UIKit
extension Bundle {
func decode<T: Decodable>(_ type: T.Type, from file: String) -> T {
guard let url = self.url(forResource: file, withExtension: nil) else {
fatalError("Failed to locate \(file) in bundle.")
}
guard let data = try? Data(contentsOf: url) else {
fatalError("Failed to load \(file) from bundle.")
}
let decoder = JSONDecoder()
guard let loaded = try? decoder.decode(T.self, from: data) else {
fatalError("Failed to decode \(file) from bundle.")
}
return loaded
}
}
// File Model
import SwiftUI
struct CharacterModel: Codable, Hashable, Equatable, Identifiable{
var id:Int
var name:String
var force:Int
var spirituel:Int
var endurance:Int
var defensePhysique:Int
var defenseMagique:Int
var vitesse:Int
var mainImage: String {
name.replacingOccurrences(of: " ", with: "-").lowercased()
}
var thumbnailImage: String {
"\(mainImage)-thumb"
}
#if DEBUG
static let exemple = CharacterModel(
id: 1,
name: "Hippo",
force: 100,
spirituel: 10,
endurance: 10,
defensePhysique: 100,
defenseMagique: 100,
vitesse: 10
)
#endif
}
// My data.json
[
{
"id": 1,
"name": "Hippo",
"imageName": "Hippo",
"Endurance": 100,
"force": 10,
"Spirituel": 10,
"DefensePhysique": 100,
"DefenseMagique": 100,
"Vitesse": 10
}
]
import SwiftUI
struct ContentView: View {
let character = Bundle.main.decode([CharacterModel].self, from: "data.json")
var body: some View {
NavigationView {
List{
ForEach(character) { characters in
Image(characters.name)
}
}
.navigationBarTitle("Menu")
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
解决方案
推荐阅读
- jquery - jQuery填充输入未使用通过url传递的信息填充表单
- django - 我可以在同一个模板中添加 2 个或更多不同的表单吗?
- mysql - MySQL从前几行添加余额
- c# - x字符后如何更改颜色
- json - KafkaJsonSerializer:案例类的默认构造函数
- postgresql - 即使输入是 Latin1,PostgreSQL 也可以将条目转换为 UTF-8 吗?
- sqlmap - SQLMAP 缺少一个或多个核心扩展('gzip'、'ssl'、'sqlite3'、'zlib')
- c# - 如何在制作 zip 文件之前将文件内容制作为 base64 编码
- android - Android Espresso 未与 Rx Completable 同步
- sqlite - 如何从 sqlite3 的子表中删除子行?