【发布时间】:2021-06-15 01:18:23
【问题描述】:
我正在开发 iOS 14 中的一个小部件,它将显示我的用户提交的来自 Core Data 的图像。目前,我可以显示单个图像,但它不会在项目图像中旋转。它只在小部件中显示单个图像。
在我的 Widget.swift 中,我可以让图像显示的唯一方法是使用 ForEach。如果我不使用 ForEach,我会收到错误 Value of type 'FetchedResults<Project>' has no member 'image1'
这是(大部分)工作代码
struct WidgetEntryView : View {
var entry: Provider.Entry
@State var projectImage1: Data = .init(count: 0)
@FetchRequest(entity: Project.entity(), sortDescriptors: []) var project: FetchedResults<Project>
var body: some View {
ForEach((project.prefix(1)), id: \.self) { (project: Project) in
Image(uiImage: UIImage(data: project.image1 ?? self.projectImage1) ?? UIImage(imageLiteralResourceName: "icon"))
.resizable()
.aspectRatio(contentMode: .fill)
}.environment(\.managedObjectContext, managedObjectContext)
}
}
同样,如果我使用下面的代码,由于某种原因,我会收到 no member 错误
struct WidgetEntryView : View {
var entry: Provider.Entry
@State var projectImage1: Data = .init(count: 0)
@FetchRequest(entity: Project.entity(), sortDescriptors: []) var project: FetchedResults<Project>
var body: some View {
Image(uiImage: UIImage(data: project.image1 ?? self.projectImage1) ?? UIImage(imageLiteralResourceName: "icon"))
.resizable()
.aspectRatio(contentMode: .fill)
}.environment(\.managedObjectContext, managedObjectContext)
}
}
如何让 ForEeach 显示随机的 project.image1 属性?我试过附加 randomElement() 和 shuffle() 但都不被接受。
这是完整的 Widget.swift:https://pastebin.com/aFMuZ0iz
【问题讨论】:
标签: ios swift core-data swiftui widgetkit