SwiftUIのListビューを使って、簡単な会員一覧ビューを作っている。
その時の開発メモ。
リストに表示しているのは、CoreDataで管理している会員を表すMemberエンティティのnameプロパティだ。
ビューは下記のコードで実装されている。
import SwiftUI
import CoreData
struct MemberListView: View {
let members: [Member]
var body: some View {
NavigationView {
List {
ForEach(members.indices, id: \.self) { index in
Text("\(self.members[index].name!)")
}
}
.navigationBarTitle("会員一覧")
}
}
}
今回はこのビューに対し、複数のMemberエンティティを格納した配列をプレビューで使用するサンプルコードを紹介する。
struct MemberListView_Previews: PreviewProvider {
static var previews: some View {
let context = (UIApplication.shared.delegate as! AppDelegate)
.persistentContainer.viewContext
var members = [Member]()
for i in 1...10 {
let member = Member(context: context)
member.name = "hoge_\(i)"
members.append(member)
}
return MemberListView(members: members)
.environment(\.managedObjectContext, context)
}
}
こちらが今回用意したプレビュー用のコード。
Memberエンティティのインスタンス化から、配列への追加までをおこなっている7行目以降がポイントだ。
for文を使うことでコードをコンパクトにまとめることができている。