CoreDataのエンティティー(クラス)をSwift UIのPreviewで渡したい時にどうするかです。
struct DetailBookView: View {
var be:BookEntity?
var body: some View {
:
例えば、BookEntityをCoreDataのモデルとして定義していて、このViewではその中身を表示したいとします。
メンバとして定義しているので、プレビューでテストデータを入れて表示したいとします。
デフォルトだとPersisitanceでサンプルデータを10件作っていますので、サンプルデータから1つ取り出してあげれば良いのです。
struct DetailBookView_Previews: PreviewProvider {
static var previews: some View {
DetailBookView(be: item)
}
static var item: BookEntity {
let context = PersistenceController.preview.container.viewContext
let request = BookEntity.fetchRequest()
request.sortDescriptors = [NSSortDescriptor(keyPath: \BookEntity.createdat, ascending: true)]
do {
let fetchedItems = try context.fetch(request)
return fetchedItems.first!
} catch {
fatalError()
}
}
}