Post

Replies

Boosts

Views

Activity

Unable to initialize `ValueTransformer` for UIImageTransformer
I generated model classes using XCode's auto-generate functionality while trying to migrate from CoreData to SwiftData. I get a fatal error on launch - Thread 1: Fatal error: Unable to initialize ValueTransformer for UIImageTransformer Any suggestions are welcome! Please find the code below: import SwiftData import UIKit @Model public class Cocktail { public var id: UUID = UUID() var idDrink: String = "" @Attribute(.transformable(by: UIImageTransformer.self)) var image: UIImage? var isFavourite: Bool = false var order: Int16 = 0 var strAlcoholic: String = "" var strCategory: String = "" @Attribute(.unique) var strDrink: String = "" var strDrinkThumb: String = "" var strGlass: String = "" var strImageSource: String = "" var strInstructions: String = "" @Relationship(inverse: \Component.cocktail) var ingredient: [Component] = [] public init() { } } import Foundation import SwiftData @Model public class Component { var measure: String? var name: String? var cocktail: Cocktail? public init() { } } Value transformer: import UIKit class UIImageTransformer: ValueTransformer { static let name = NSValueTransformerName(rawValue: "UIImageTransformer") override func transformedValue(_ value: Any?) -> Any? { guard let image = value as? UIImage else { return nil } do { let data = try NSKeyedArchiver.archivedData(withRootObject: image, requiringSecureCoding: true) return data } catch { return nil } } override func reverseTransformedValue(_ value: Any?) -> Any? { guard let data = value as? Data else { return nil } do { let image = try NSKeyedUnarchiver.unarchivedObject(ofClass: UIImage.self, from: data) return image } catch { return nil } } override public class func transformedValueClass() -> AnyClass { return UIImage.self } override public class func allowsReverseTransformation() -> Bool { return true } static func register() { ValueTransformer.setValueTransformer(UIImageTransformer(), forName: name) } } App: import SwiftUI @main struct CocktailsSwiftUIApp: App { // MARK: Body var body: some Scene { WindowGroup { ContentView() } .modelContainer(for: [Cocktail.self, Component.self]) } }
1
0
856
Oct ’23
Unable to initialize `ValueTransformer` for UIImageTransformer
I generated model classes using XCode's auto-generate functionality while trying to migrate from CoreData to SwiftData. I get a fatal error on launch - Thread 1: Fatal error: Unable to initialize ValueTransformer for UIImageTransformer Any suggestions are welcome! Please find the code below: import SwiftData import UIKit @Model public class Cocktail { public var id: UUID = UUID() var idDrink: String = "" @Attribute(.transformable(by: UIImageTransformer.self)) var image: UIImage? var isFavourite: Bool = false var order: Int16 = 0 var strAlcoholic: String = "" var strCategory: String = "" @Attribute(.unique) var strDrink: String = "" var strDrinkThumb: String = "" var strGlass: String = "" var strImageSource: String = "" var strInstructions: String = "" @Relationship(inverse: \Component.cocktail) var ingredient: [Component] = [] public init() { } } import Foundation import SwiftData @Model public class Component { var measure: String? var name: String? var cocktail: Cocktail? public init() { } } Value transformer: import UIKit class UIImageTransformer: ValueTransformer { static let name = NSValueTransformerName(rawValue: "UIImageTransformer") override func transformedValue(_ value: Any?) -> Any? { guard let image = value as? UIImage else { return nil } do { let data = try NSKeyedArchiver.archivedData(withRootObject: image, requiringSecureCoding: true) return data } catch { return nil } } override func reverseTransformedValue(_ value: Any?) -> Any? { guard let data = value as? Data else { return nil } do { let image = try NSKeyedUnarchiver.unarchivedObject(ofClass: UIImage.self, from: data) return image } catch { return nil } } override public class func transformedValueClass() -> AnyClass { return UIImage.self } override public class func allowsReverseTransformation() -> Bool { return true } static func register() { ValueTransformer.setValueTransformer(UIImageTransformer(), forName: name) } } App: import SwiftUI @main struct CocktailsSwiftUIApp: App { // MARK: Body var body: some Scene { WindowGroup { ContentView() } .modelContainer(for: [Cocktail.self, Component.self]) } }
Replies
1
Boosts
0
Views
856
Activity
Oct ’23
CGColorSpaceIsUncalibrated Crash
I'm attaching the crash log, hopefully someone can help me out. Thanks! crashlog.crash
Replies
0
Boosts
0
Views
787
Activity
Oct ’23