Squash
This commit is contained in:
14
Clemens Playground/Data/Game.swift
Normal file
14
Clemens Playground/Data/Game.swift
Normal file
@@ -0,0 +1,14 @@
|
||||
//
|
||||
// Game.swift
|
||||
// Clemens Playground
|
||||
//
|
||||
// Created by Maximilian Roider on 14.11.25.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
struct Game: Hashable, Codable, Identifiable {
|
||||
var id: Int
|
||||
var name: String
|
||||
var url: String
|
||||
}
|
||||
33
Clemens Playground/Data/Loader.swift
Normal file
33
Clemens Playground/Data/Loader.swift
Normal file
@@ -0,0 +1,33 @@
|
||||
//
|
||||
// Loader.swift
|
||||
// Clemens Playground
|
||||
//
|
||||
// Created by Maximilian Roider on 14.11.25.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
var games: [Game] = load("games.json")
|
||||
|
||||
func load<T: Decodable>(_ filename: String) -> T {
|
||||
|
||||
let data: Data
|
||||
|
||||
guard let file = Bundle.main.url(forResource: filename, withExtension: nil)
|
||||
else {
|
||||
fatalError("Couldn't find \(filename) in main bundle.")
|
||||
}
|
||||
|
||||
do {
|
||||
data = try Data(contentsOf: file)
|
||||
} catch {
|
||||
fatalError("Couldn't load \(filename) from main bundle:\n\(error)")
|
||||
}
|
||||
|
||||
do {
|
||||
let decoder = JSONDecoder()
|
||||
return try decoder.decode(T.self, from: data)
|
||||
} catch {
|
||||
fatalError("Couldn't parse \(filename) as \(T.self):\n\(error)")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user