SwiftUI を学ぶために、私はこの MVVM アーキテクチャに本当に苦労しています。そうは言っても、私はこれを学ぶために取り組んできたプロジェクトを持っています。他の人たちの助けを借りて、私はここまで来ました。
現在の問題は、@Published
View Model でラップされたプロパティを作成して、オプションのパラメーターを持たせる必要があることです。残念ながら、私が試したことはすべてうまくいきません。私がやろうとしているのは、ユーザーが TextFields に入力したものを取得し、それらを数学関数で使用することです。
モデル.swift
// Model.
protocol Height {
var heightInCentimeters: Int { get }
}
struct ImperialHeight: Height {
var feet: Int
var inches: Int
var heightInCentimeters: Int {
Int(((Double(feet) * 12.0)) + Double(inches) * 2.54)
}
}
struct MetricHeight: Height {
var heightInCentimeters: Int
}
protocol Weight {
var weightInKilograms: Int { get }
}
struct ImperialWeight: Weight {
var pounds: Int
var weightInKilograms: Int {
Int(Double(pounds) * 0.4535924)
}
}
struct MetricWeight {
var weightInKilograms: Int
}
struct UserData {
var age: Int = 18
var weight: Weight
var height: Height
}
モデルを見る
class UserDataViewModel: ObservableObject {
@Published var userData: UserData = UserData(weight: ImperialWeight(pounds: 220), height: ImperialHeight(feet: 6, inches: 2))
...
前述のように、現在の問題は、@Published
プロパティ ラッパーが重量と高さを必要とすることです。理想的には、ユーザーの TextField 入力を介してそのデータを入力するオプションを作成したいと思います。
多数のドキュメント、チュートリアル、ガイドを読んでみました。残念ながら、自分のプロジェクトにどのように適用するかという点で、まだ概念を把握できていません。