我想在二进制数据核心数据属性的第二个位置保存一个项。核心数据实体命名为picture,属性命名为pic。我的代码是基于一些东西,将项目追加到核心数据属性。我要做的是把它保存在槽2。如果有东西在槽2,它就会在槽2上保存。在
处出现错误CoredataHandler.shareInstance。saveImage(数据:imageData1)
类型'UIImage'的值没有下标
class ViewController: UIViewController,UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@objc func leftM(){
if let imageData = imagePlace.image {
CoredataHandler.shareInstance.saveImage(data: imageData[1])
}
}
class CoredataHandler : NSManagedObject {
static let shareInstance = CoredataHandler()
func saveImage(data: Data) {
let imageInstance = Pictucre(context: context)
imageInstance.pic = data
do {
try context.save()
} catch {
print(error.localizedDescription)
}
}
class CoredataHandler : NSManagedObject {
static let shareInstance = CoredataHandler()
func saveImage(data: Data) {
let imageInstance = Pictucre(context: context)
imageInstance.pic = data
do {
try context.save()
} catch {
print(error.localizedDescription)
}
}}
图片
这些错误告诉你的是:
imageData
是UIImage
- 您正试图在
imageData
上使用下标(这里是[1]
)。 UIImage
不使用下标,所以这一行没有意义。
数字下标用于数组或其他集合上查找特定图像中的项。如果有一个图像数组,可以使用[1]
访问索引1处的图像。单个UIImage
不是任何类型的集合,它只是一个图像,所以使用数字下标是没有意义的。
很难说你想做什么——"二进制数据核心数据属性的第二个点">并没有真正的意义,因为二进制属性没有多个"点",它们只是保存了一堆可以代表图像的字节,或者你想要的任何东西。数字索引没有意义,因为在二进制属性上没有索引或"点"的概念。