Post

Replies

Boosts

Views

Activity

NSAttributedString attribute in CoreData
I have an NSAttributedString attribute in an entity marked as Transformable with the transformer set to NSSecureUnarchiveFromDataTransformerName. I have a Transformer defined as: class AttributedStringTransformer: NSSecureUnarchiveFromDataTransformer {     override class func allowsReverseTransformation() -> Bool {         return true     }     override class func transformedValueClass() -> AnyClass {         return NSAttributedString.self     }     override class var allowedTopLevelClasses: [AnyClass] {         return [NSAttributedString.self]     }     override func transformedValue(_ value: Any?) -> Any? {         guard let data = value as? Data else {             fatalError("Wrong data type: value must be a Data object; received \(type(of: value))")         }         return super.transformedValue(data)     }     override func reverseTransformedValue(_ value: Any?) -> Any? {         guard let string = value as? NSAttributedString else {             fatalError("Wrong data type: value must be a Reminder object; received \(type(of: value))")         }         return super.reverseTransformedValue(string)     } } extension AttributedStringTransformer {     /// The name of the transformer. This is the name used to register the transformer using `ValueTransformer.setValueTrandformer(_"forName:)`.     static let name = NSValueTransformerName(rawValue: String(describing: AttributedStringTransformer.self))     /// Registers the value transformer with `ValueTransformer`.     public static func register() {         let transformer = AttributedStringTransformer()         ValueTransformer.setValueTransformer(transformer, forName: name)     } } The transformer is registered on launch. When I launch the app with the string initialised to an empty attributed string the app fails right away with: CoreData: error: SQLCore dispatchRequest: exception handling request: <NSSQLSaveChangesRequestContext: 0x6000005679c0> , <shared NSSecureUnarchiveFromData transformer> threw while encoding a value. with userInfo of (null) 2021-08-12 08:53:30.390456+0100 Easiwriter[5985:108985] [error] error: -executeRequest: encountered exception = <shared NSSecureUnarchiveFromData transformer> threw while encoding a value. with userInfo = (null) CoreData: error: -executeRequest: encountered exception = <shared NSSecureUnarchiveFromData transformer> threw while encoding a value. with userInfo = (null) 2021-08-12 08:53:30.391637+0100 Easiwriter[5985:108985] [error] error: SQLCore dispatchRequest: exception handling request: <NSSQLSaveChangesRequestContext: 0x600000550a80> , <shared NSSecureUnarchiveFromData transformer> threw while encoding a value. with userInfo of (null) CoreData: error: SQLCore dispatchRequest: exception handling request: <NSSQLSaveChangesRequestContext: 0x600000550a80> , <shared NSSecureUnarchiveFromData transformer> threw while encoding a value. with userInfo of (null) 2021-08-12 08:53:30.458505+0100 Easiwriter[5985:108985] [error] error: -executeRequest: encountered exception = <shared NSSecureUnarchiveFromData transformer> threw while encoding a value. with userInfo = (null) CoreData: error: -executeRequest: encountered exception = <shared NSSecureUnarchiveFromData transformer> threw while encoding a value. with userInfo = (null) 2021-08-12 08:53:30.459614+0100 Easiwriter[5985:108985] [error] error: SQLCore dispatchRequest: exception handling request: <NSSQLSaveChangesRequestContext: 0x600000550a80> , <shared NSSecureUnarchiveFromData transformer> threw while encoding a value. with userInfo of (null) CoreData: error: SQLCore dispatchRequest: exception handling request: <NSSQLSaveChangesRequestContext: 0x600000550a80> , <shared NSSecureUnarchiveFromData transformer> threw while encoding a value. with userInfo of (null) 2021-08-12 08:53:30.459835+0100 Easiwriter[5985:108985] [error] error: -executeRequest: encountered exception = <shared NSSecureUnarchiveFromData transformer> threw while encoding a value. with userInfo = (null) CoreData: error: -executeRequest: encountered exception = <shared NSSecureUnarchiveFromData transformer> threw while encoding a value. with userInfo = (null) 2021-08-12 08:53:30.471535+0100 Easiwriter[5985:108985] [error] error: SQLCore dispatchRequest: exception handling request: <NSSQLSaveChangesRequestContext: 0x60000056d8c0> , <shared NSSecureUnarchiveFromData transformer> threw while encoding a value. with userInfo of (null) CoreData: error: SQLCore dispatchRequest: exception handling request: <NSSQLSaveChangesRequestContext: 0x60000056d8c0> , <shared NSSecureUnarchiveFromData transformer> threw while encoding a value. with userInfo of (null) I have put break points on the transformer, but it never hits them. The behaviour of the app gives me the feeling that this is a bug in CoreData, but I can't pin it down. Can someone please suggest what might be wrong. I am using Xcode 13.0 beta 5 (it failed on beta 4 as well).
0
0
937
Aug ’21
Ventura & XCode
So I installed the latest OS update from Settings not realising that it wasn’t a Monteray update, but Ventura beta. But then when I tried running XCode I get a message that it won’t work with Ventura. So I’m stuck because I was about to release an App, but can’t because the App Store won’t accept stuff built with beta software. So thanks Apple. Of course it’s all my own fault for not reading the Release notes where it is buried in the detail.
0
1
770
Jun ’22
I'm trying and failing to dismiss a view using the dismiss environment
I have a SwiftUI view that I'm trying to dismiss with a button. Here's the dismiss code: struct MyBackButton: View { var backButton: Bool var dismiss: DismissAction var body: some View { Button( action: dismiss.callAsFunction ) { HStack { if backButton { Image(systemName: "chevron.left") .imageScale(.large) Text("Write!") } else { Text(" ") } }.foregroundColor(Color("AccentColor")) } } } The containing view contains the environment declaration and the button code: struct ProjectView: View { @Environment(\.dismiss) private var dismiss here's the body of the view containing the following modifier that creates the button .configureView("Write!", publisher: publisher, dismiss: dismiss)` When the button is pressed the dismiss action is invoked but nothing happens. I've tried many variants of this code without success. Any help welcomed. I am using Xcode 15.3 beta.
0
0
550
Feb ’24
Swiftdata Model crash
I am converting a large core data app to SwiftData and have hit a problem I can't fix, namely code generated by a Model crashing. Here is the model showing the failing expansion. Here is the model containing the inverse for the failing attribute: /Users/writingshedprod/Desktop/Screenshot 2024-05-08 at 20.21.51.png And here is the mass of core data output generated when the app launches. If anyone can make sense of this I'd be grateful. This is where the problem might lie. Debugger.txt
0
0
590
May ’24