我目前正在做一个项目,需要允许用户在Swift数据中存储多个图像!我想知道是否有人知道如何做到这一点。下面是我目前的模型
import Foundation
import SwiftData
@Model
class SwiftDataModel {
// Session Data
var record_type: WorkRecordType
var amount: Int
var nameOfSession: String
var date: Date
var canvas: Data
var taps: Int
@Attribute(.externalStorage) var photo: Data?
// Doc Scan Data
// Event Data
var subject_type: EventType
var name_of_event: String
var event_date: Date
var is_notified: Bool
init(amount: Int = 0, nameOfSession: String = "", Date: Date = .now, /*canvas: Data = Data(),*/ record_type: WorkRecordType = .dont_record, taps: Int = 0, name_of_event: String = "", event_date: Date = .now, subject_type: EventType = .other, is_notified: Bool = false) {
// Session Data
self.amount = amount
self.nameOfSession = nameOfSession
self.date = Date
self.canvas = Data()
self.record_type = record_type
self.taps = taps
// Event Data
self.name_of_event = nameOfSession
self.event_date = Date
self.subject_type = subject_type
self.is_notified = is_notified
//Doc Scan Data
}
}
字符串
我知道如何在Swift数据中存储一个图像,但我不知道如何在Swift数据中存储一个图像数组。
2条答案
按热度按时间k97glaaz1#
您可以创建保存图像数据的新模型:
字符串
在
SwiftDataModel
中,你可以添加一个[Photo]
属性,它将在两个模型之间创建一个一对多的关系。在这里使用
@Relationship(deleteRule: .cascade)
将允许您在删除其父照片时自动删除照片。型
**注意:**在
SwiftDataModel
中保存Data
的数组可以工作,但会给您以下警告:核心数据:调试:保存后维护:fileSize 28234392大于修剪阈值CoreData:annotation:PostSaveMaintenance:wal_checkpoint(TRUNCATE)
cu6pst1q2#
为什么不使用[Data]作为类型?
字符串
此外,请注意以这种方式存储照片(和大数据)的优点和缺点,see similar discussion in CoreData thread.