我正在尝试在上下文菜单中添加删除操作,但它只是显示为默认的黑色。照片应用程序的删除操作也使用红色。我已经看到了一些网上的空间,这是不是目前所提供的功能contextMenu,但是,我也看到了它在第三方应用程序使用在野外这里。有谁知道如何做到这一点?
此外,看好苹果的文档为contextMenu它说,他们已经过时了,除了MacOS的一切。我觉得奇怪的是,他们在引入它一年后就弃用了它。这是否被我应该使用的另一个组件所取代?
var body: some View {
ScrollView {
LazyVGrid(columns: columns, spacing: 20) {
ForEach(photos) { photo in
Image(uiImage: UIImage(data: photo.imageData!)!)
.resizable()
.aspectRatio(1, contentMode: .fill)
.contextMenu(menuItems: {
Button(action: {
deletePhoto(selectedPhoto: photo)
}) {
Label("Remove", systemImage: "trash")
}
})
}
}
.padding()
.navigationBarTitle(Text("Albums"))
.navigationBarItems(trailing:
Button(action: {
self.showingImagePicker = true
}) {
Image(systemName: "plus.circle.fill")
}
)
.sheet(isPresented: $showingImagePicker, onDismiss: loadImage) {
ImagePicker(image: self.$inputImage)
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将 CoreData 添加到我的应用程序中。此应用程序将成为一个照片应用程序,并为用户提供将照片存储在相册中的能力。我目前在 CoreData 中有两个实体,Photo并且Album.
该Album实体有四个属性。albumCoverImageData: Binary Data, id: UUID, name: String, passwordProtected: Boolean. 除了这些属性之外,它还有一个关系photos目的地PhotoInverse Album。
该Photo实体有两个属性,id: UUID和imageData: BinaryData
尝试将新专辑添加到数据库时,尝试保存上下文时,应用程序崩溃并显示以下错误。
2020-10-20 15:49:33.889808-0400 LockIt[902:92475] -[__NSConcreteUUID compare:]: unrecognized selector sent to instance 0x2817b4fe0
2020-10-20 15:53:28.604954-0400 LockIt[902:92475] [error] error: Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. -[__NSConcreteUUID compare:]: …Run Code Online (Sandbox Code Playgroud)