在Swift数据中存储多个图像

5w9g7ksd  于 11个月前  发布在  Swift
关注(0)|答案(2)|浏览(139)

我目前正在做一个项目,需要允许用户在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数据中存储一个图像数组。

k97glaaz

k97glaaz1#

您可以创建保存图像数据的新模型:

@Model class Photo {
    var id: UUID //optionally add some other fields if needed
    @Attribute(.externalStorage) var photo: Data
    init(photo: Data) {
        self.id = UUID()
        self.photo = photo
    }
}

字符串
SwiftDataModel中,你可以添加一个[Photo]属性,它将在两个模型之间创建一个一对多的关系。
在这里使用@Relationship(deleteRule: .cascade)将允许您在删除其父照片时自动删除照片。

@Model
class SwiftDataModel {
    @Relationship(deleteRule: .cascade) var photos: [Photo]
    ...
}

**注意:**在SwiftDataModel中保存Data的数组可以工作,但会给您以下警告:

核心数据:调试:保存后维护:fileSize 28234392大于修剪阈值CoreData:annotation:PostSaveMaintenance:wal_checkpoint(TRUNCATE)

cu6pst1q

cu6pst1q2#

为什么不使用[Data]作为类型?

@Attribute(.externalStorage) var photos: [Data]

字符串
此外,请注意以这种方式存储照片(和大数据)的优点和缺点,see similar discussion in CoreData thread.

相关问题