Я использую утилиту декодирования json, которая отлично работает. Мне интересно, можно ли абстрагировать эту утилиту в propertyWrapper, который принимает имя файла json в виде строки.
Сайт вызова в ContentView выглядит так:
struct ContentView: View {
@DataLoader("tracks.json") var tracks: [Tracks]
...
Мой примерный набросок оболочки свойств выглядит так:
@propertyWrapper
struct DataLoader<T: Decodable>: DynamicProperty {
private let fileName: String
var wrappedValue: T {
get {
return Bundle.main.decode(T.self, from: fileName)
}
set {
//not sure i need to set anything since i just want to get the array
}
}
init(_ fileName: String) {
self.fileName = fileName
wrappedValue = Bundle.main.decode(T.self, from: fileName)
}
}
В настоящее время в теле ContentView отображается эта ошибка:
Не удалось произвести диагностику для выражения; пожалуйста, отправьте отчет об ошибке
Мне нравится идея удалить шаблонный код, но я думаю, что мне здесь не хватает чего-то фундаментального.