以下のような構造体を作り、その構造体の配列を扱いたいと思います。
swift
1struct Data: Identifiable { 2 var id: Int 3 var data: String 4} 5 6struct ContentView: View { 7 @State var name: String = "" 8 @State var dataArray: [Data] = [] 9 10 var body: some View { 11 Button(action: { 12 self.dataArray.append(Data(id:self.DataArray.count, Data:self.name)) 13 }) { 14 Text("Add") 15 } 16 } 17} 18 19struct RowView: View { 20 var rowData: Data 21 22 var body: some View{ 23 HStack { 24 Text(rowData.id) // ### 25 Text(rowData.data) 26 } 27 } 28}
コードに不備があるかもしれませんが、やりたいことはData型の配列dataArrayに、UIボタンの押下で逐次要素追加し、そのリストの内容を、属性idを通し番号として、属性nemeともに表示すると言うことです。
「###」をつけた1行をコメントアウトするとビルドできるのですが、そのままだと、以下のエラーが出ます。
Initializer 'init(_:)' requires that 'Int' conform to 'StringProtocol
「idはIdentifiableプロトコルに準拠しているから」ということなのだと思いますが、このidを通し番号として利用することはできないのでしょうか
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/03 01:24