我遇到了一个问题,将SwiftData对象的属性设置为带有可选String的Codable
结构会导致应用程序崩溃。
例如,如果我有以下模型对象和结构:
@Model
final class Item {
var timestamp: Date
var codableProp: CodedValue?
init(timestamp: Date, cProp: CodedValue?) {
self.timestamp = timestamp
self.codableProp = cProp
}
}
struct CodedValue: Codable{
var string0: String? = nil
var bool0: Bool? = nil
var bool1: Bool? = nil
}
字符串
如果我使用以下JSON创建CodedValue
的示例,应用程序会崩溃:
{
"bool0": true
}
型
我得到的具体错误是:
“无法将类型”Swift.Optional<Swift.String>“(0x1c1e3f000)的值强制转换为”Swift.String“(0x1c1e37e30)”
崩溃似乎发生在@Model
宏中的某个地方:
1条答案
按热度按时间tzcvj98z1#
我在这里找到了一个解决方案:swift data crash solution
将
@Model
装饰器添加到所有模型中。并且不要在Item
构造函数中分配CodedValue
模型。因为您的应用可能会崩溃。这只是SwiftData错误。字符串