Lỗi dữ liệu cốt lõi chuyển sang sử dụng NSSecureUnarchiveFromData, hoặc một lớp con của NSSecureUnarchiveFromDataTransformer thay thế


8

Tôi nhận được lỗi CoreData này. Tôi không biết tại sao tôi nhận được lỗi này. Tôi không sử dụng bất kỳ loại Transformable nào. Tôi không thấy gì trong mã của mình chỉ ra rằng tôi đang sử dụng các thuộc tính có thể chuyển đổi. Tôi để Xcode thiết lập CoreData bằng cách chọn tùy chọn Sử dụng dữ liệu lõi khi tôi tạo dự án của mình. Các câu hỏi tương tự khác không giúp được gì vì các câu trả lời phải làm với mã trông giống như bất cứ thứ gì tôi có thể tìm thấy Xcode được tạo khi dự án được tạo. Dự án không gặp sự cố khi lỗi này xuất hiện trong cửa sổ gỡ lỗi. Tôi đang sử dụng Xcode 11.3 và Google Maps SDK cho iOS cho iOS 12 và nó đang chạy trên thiết bị iPhone 8 với iOS 13.3.

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.

Đây là mã gây ra lỗi:

do {

    storeAddresses = try managedObjectContext.fetch(Address.fetchRequest())

} catch {

    print(error)

}

Tôi đang sử dụng các đối tượng dữ liệu cốt lõi sau:

Địa chỉ thực thể

vị trí thuộc tính

loại số nguyên 16

Kiểu thuộc tính văn bản Chuỗi

loại thuộc tính dấu thời gian Ngày

tuyến đường mối quan hệ đích Địa chỉ nghịch đảo

Tuyến thực thể

loại thuộc tính dấu thời gian Ngày

Chuỗi loại thuộc tính tiêu đề

địa chỉ đích quan hệ Địa chỉ tuyến nghịch đảo

Tôi có mã sau đây cho các lớp đối tượng được quản lý:

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)

}

Câu trả lời:


0

Tôi nghĩ rằng bạn có thể đã bỏ qua một trong những thực thể của bạn được gọi là "GMSCacheProperty".

Như đã nêu trong thông báo lỗi:

CoreData: cảnh báo: Thuộc tính 'giá trị' trên Thực thể 'GMSCacheProperty' đang sử dụng nil hoặc NSValueTransformer không an toàn.

Thực thể này có "giá trị" thuộc tính đang sử dụng nil hoặc NSValueTransformer không an toàn.


0

Tôi thấy tôi đã làm gì đó sai khi tôi sử dụng mã của riêng mình thay vì removeFromAddresses (_ value: Địa chỉ) để xóa địa chỉ khỏi Route.addresses. Khi tôi sửa mã của mình bằng cách sử dụng removeFromAddresses (_ value: Địa chỉ) thay vì mã của riêng tôi, các thông báo lỗi trong câu hỏi đã biến mất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.