我有一个小问题,我尝试解码我的 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
}
}
Run Code Online (Sandbox Code Playgroud)
// 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
}
Run Code Online (Sandbox Code Playgroud)
// My data.json
[
{
"id": 1,
"name": "Hippo",
"imageName": "Hippo",
"Endurance": 100,
"force": 10,
"Spirituel": 10,
"DefensePhysique": 100,
"DefenseMagique": 100,
"Vitesse": 10
}
]
Run Code Online (Sandbox Code Playgroud)
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()
}
}
Run Code Online (Sandbox Code Playgroud)
小智 10
您的项目的捆绑资源中似乎缺少该文件。打开Build Phases
项目文件中的选项卡搜索data.json
. 如果没有任何反应,则导航到该部分并使用该部分底部的按钮Copy Bundle Resources
添加文件。+
归档时间: |
|
查看次数: |
2800 次 |
最近记录: |