在SwiftData中修改现有数据模型

kwvwclae  于 2023-11-16  发布在  Swift
关注(0)|答案(1)|浏览(170)

在项目编译完成后,我需要在SwiftData中建模的类中添加一个新属性,并且一些数据已经保存到底层容器中。但是当我尝试使用修改后的数据模型构建和运行项目时,应用程序崩溃了。例如,数据模型如下所示:

import Foundation
import SwiftData

@Model
final class TileView {
    @Attribute (.unique) var tileName
    var tileLegth: Double
    var tileWidth: Double
    var tilePatternName: String
    // var tileType: String // This is later added

   init(tileName: String, tileLength: Double, tileWidth: Double, tilePatternName: Double/*, tileType: String*/) {
       self.tileName = tileName
       self.tileLength = tileLength
       self.tilePatternName = tilePatternName
       // self.tileType = tileType
   }
}

字符串
如果在应用程序最初构建和运行后,上述代码片段中的注解代码被取消注解,则应用程序在随后构建和运行时会崩溃。是否有安全的方法来修改(例如添加或删除属性)上述现有模型?非常感谢。

dly7yett

dly7yett1#

问题解决了。这是因为我没有迁移@Relationship var,所以运行时无法在模型的新版本中找到它。对不起,我没有将@Relationship var放在我在帖子中提供的代码片段中,因为我不知道是新版本的初始化器中缺少@Relationship var导致了问题。
感谢您的参与和建议。

相关问题