我得到了这个CoreData错误。我不知道为什么会出现这个错误,因为我没有使用任何可转换类型。在我的代码中,我没有看到任何表明我在使用可转换属性的东西。当我创建项目时,我让Xcode选择使用Core Data选项来设置CoreData。其他类似的问题并没有帮到我,因为答案涉及到的代码看起来与我在创建项目时Xcode自动生成的代码不一样。当此错误在调试窗口中出现时,项目不会崩溃。我正在使用Xcode 11.3和Google Maps SDK for iOS for iOS 12,在运行iOS 13.3的iPhone 8设备上运行。
CoreData: annotation: Failed to load optimized model at path '/var/containers/Bundle/Application/A2B8A56C-E0D5-467A-9300-8EDFB20574BE/Routes.app/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileProto.omo'
2020-01-13 12:42:00.771883-0600 Routes[4631:1067373] [error] fault: One or more models in this application are using transformable properties with transformer names that are either unset, or set to NSKeyedUnarchiveFromDataTransformerName. Please switch to using "NSSecureUnarchiveFromData" or a subclass of NSSecureUnarchiveFromDataTransformer instead. At some point, Core Data will default to using "NSSecureUnarchiveFromData" when nil is specified, and transformable properties containing classes that do not support NSSecureCoding will become unreadable.
CoreData: fault: One or more models in this application are using transformable properties with transformer names that are either unset, or set to NSKeyedUnarchiveFromDataTransformerName. Please switch to using "NSSecureUnarchiveFromData" or a subclass of NSSecureUnarchiveFromDataTransformer instead. At some point, Core Data will default to using "NSSecureUnarchiveFromData" when nil is specified, and transformable properties containing classes that do not support NSSecureCoding will become unreadable.
2020-01-13 12:42:00.771972-0600 Routes[4631:1067373] [error] CoreData: One or more models in this application are using transformable properties with transformer names that are either unset, or set to NSKeyedUnarchiveFromDataTransformerName. Please switch to using "NSSecureUnarchiveFromData" or a subclass of NSSecureUnarchiveFromDataTransformer instead. At some point, Core Data will default to using "NSSecureUnarchiveFromData" when nil is specified, and transformable properties containing classes that do not support NSSecureCoding will become unreadable.
CoreData: warning: Property 'value' on Entity 'GMSCacheProperty' is using nil or an insecure NSValueTransformer. Please switch to using "NSSecureUnarchiveFromData" or a subclass of NSSecureUnarchiveFromDataTransformer instead.
CoreData: annotation: Failed to load optimized model at path '/var/containers/Bundle/Application/A2B8A56C-E0D5-467A-9300-8EDFB20574BE/Routes.app/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileProto.omo'
CoreData: warning: Property 'value' on Entity 'GMSCacheProperty' is using nil or an insecure NSValueTransformer. Please switch to using "NSSecureUnarchiveFromData" or a subclass of NSSecureUnarchiveFromDataTransformer instead.
CoreData: annotation: Failed to load optimized model at path '/var/containers/Bundle/Application/A2B8A56C-E0D5-467A-9300-8EDFB20574BE/Routes.app/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileProto.omo'
CoreData: warning: Property 'value' on Entity 'GMSCacheProperty' is using nil or an insecure NSValueTransformer. Please switch to using "NSSecureUnarchiveFromData" or a subclass of NSSecureUnarchiveFromDataTransformer instead.
这是触发错误的代码:
do {
storeAddresses = try managedObjectContext.fetch(Address.fetchRequest())
} catch {
print(error)
}
我正在使用以下核心数据对象:
地址实体
位置属性
类型为Integer 16
文本属性类型为String
时间戳属性类型为Date
路线关系目标Route,反向地址
路线实体
时间戳属性类型为Date
标题属性类型为String
地址关系目标Address,反向路线
我有以下托管对象类的代码:
public class Address: NSManagedObject {
}
extension Address {
@nonobjc public class func fetchRequest() -> NSFetchRequest<Address> {
return NSFetchRequest<Address>(entityName: "Address")
}
@NSManaged public var text: String?
@NSManaged public var timestamp: NSDate
@NSManaged public var position: Int16
@NSManaged public var route: Route?
}
public class Route: NSManagedObject {
}
extension Route {
@nonobjc public class func fetchRequest() -> NSFetchRequest<Route> {
return NSFetchRequest<Route>(entityName: "Route")
}
@NSManaged public var timestamp: NSDate
@NSManaged public var title: String?
@NSManaged public var addresses: NSSet?
}
// MARK: Generated accessors for addresses
extension Route {
@objc(addAddressesObject:)
@NSManaged public func addToAddresses(_ value: Address)
@objc(removeAddressesObject:)
@NSManaged public func removeFromAddresses(_ value: Address)
@objc(addAddresses:)
@NSManaged public func addToAddresses(_ values: NSSet)
@objc(removeAddresses:)
@NSManaged public func removeFromAddresses(_ values: NSSet)
}