I have been trying to compile and run an example App embedded in a Swift package, but failed. I have extracted the app and tried building it but it can't find the package and nothing I do fixes it. Can someone please let me into the secret.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
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).
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.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
App Review
App Store Connect
Xcode
Beta
Connect says I have to update agreements, tax and banking, but when I try and load the page the browser hangs and doesn't load the page. I am using Safari and Sonoma. This looks like a bug.
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.
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
Coredata used to save attributed strings, but now requires a secure coding transformer. I have tried the code below, but it fails claiming
This decoder will only decode classes that adopt NSSecureCoding. Class '__SwiftValue' does not adopt it
The transformer has been registered and the attributes given the name 'AttributedStringToDataTransformer'
Any suggestions as to what is wrong?
Here's the code:
class AttributedStringToDataTransformer: ValueTransformer {
override func transformedValue(_ value: Any?) - Any? {
let boxedData = try! NSKeyedArchiver.archivedData(withRootObject: value!, requiringSecureCoding: true)
return boxedData
}
override func reverseTransformedValue(_ value: Any?) - Any? {
let typedBlob = value as! Data
let data = try! NSKeyedUnarchiver.unarchivedObject(ofClasses: [NSAttributedString.self], from: typedBlob)
return (data as! NSAttributedString)
}
}
extension AttributedStringToDataTransformer {
/// 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: AttributedStringToDataTransformer.self))
/// Registers the value transformer with `ValueTransformer`.
public static func register() { ValueTransformer.setValueTransformer(AttributedStringToDataTransformer(), forName: name)
}
}
If I call
let font = UIFont.preferredFont(forTextStyle:.body)
Then font.pointSize has value 17
If, however, I call this with a font such as Arial
let font = UIFont.fontWithNameAndTraits(fontName,
size: styleAttributes.fontSize ?? 12,
bold: styleAttributes.bold ?? false,
italic: styleAttributes.italic ?? false)
let fontMetrics = UIFontMetrics(forTextStyle: .body)
let scaledFont = fontMetrics.scaledFont(for: font)
Then scaledFont.pointSize has value 12. I was expecting 17, so I must be doing something wrong. Any suggestion?
The function fontWithNameAndTraits is:
class func fontWithNameAndTraits(_ name:String, size:CGFloat, bold:Bool, italic:Bool)-UIFont {
let fontRef = UIFont.getFontRefForNameAndTraits(name, size:size, bold:bold, italic:italic)
let fontNameKey = CTFontCopyName(fontRef , kCTFontPostScriptNameKey)! as String
return UIFont(name: fontNameKey as String, size:CTFontGetSize(fontRef ))!
}
Is there a way of adding a border to a SwiftUI Menu. By this I mean the menu that appears when its button is tapped, not the button itself. I've tried using .menuStyle, but this only seems to affect the button.
I can't get my app's document icon to appear for my document extension. I have tried different ways of configuring it based on Apple's documentation and various solutions posted on the internet.
At first I tried adding the icon to the imported type identifier box where it says 'Add imported type identifier icons here' nothing happens when I select an icon (.png) stored in the project. I have checked the info.plist source and there is nothing there.
I have since tried editing the source directly. Here are the relevant pieces of my latest attempt. Can anyone tell me where I'm going wrong. Thanks.
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFiles</key>
<string>writingshed.png</string>
<key>CFBundleTypeName</key>
<string>Writing Shed Data</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>wsd</string>
</array>
</dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeDescription</key>
<string>Writing Shed Data</string>
<key>UTTypeIconFiles</key>
<array>
<string>writingshed.png</string>
</array>
<key>UTTypeIdentifier</key>
<string>WritingShedData</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>wsd</string>
</array>
</dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
</dict>
</array>
<key>UTImportedTypeDeclarations</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>UTTypeConformsTo</key>
<array/>
<key>UTTypeDescription</key>
<string>Writing Shed Data</string>
<key>UTTypeIconFiles</key>
<array>
<string>writingshed.png</string>
</array>
<key>UTTypeIdentifier</key>
<string>WritingShedData</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>wsd</string>
</array>
</dict>
</dict>
</array>
For the last few months the battery on my MacBook has drained within 24 hours in sleep mode. I have Ventura 13 installed and suspect it's somehow the culprit. There are no apps left running. Any suggestions?
Something weird has happened to my machine. It says it is running Ventura. But I had upgraded to Monterey some time ago. If I go to Software update there is no Monterey option, just a later version of Ventura.
A Monterey disk icon appears on my desktop after startup (separate from Macintosh HD). If I open this it's empty. If I eject it it it says Preboot wasn't ejected, if I force that then it says Update wasn't ejected, then finally forcing that says VM wasn't ejected. That gets rid of it until the next restart.
Has anyone any idea what is going on.
I tried coding along with the WWDC23 'Dive Deeper into SwiftData' video but can't get the sample code to compile.
For example the Card class fails with lots of errors associated with @Model. The first of these is: Type 'Card' does not conform to protocol 'PersistentModel'
import SwiftUI
import SwiftData
@Model
final class Card {
var front: String
var back: String
var creationDate: Date
init(front: String, back: String, creationDate: Date = .now) {
self.front = front
self.back = back
self.creationDate = creationDate
}
}
On the other hand the following stand alone code (in it's own project) compiles without error. So I am confused and a little fed up with Apple publishing sample code that doesn't compile.
import SwiftData
@Model
final class Card {
var front: String
var back: String
var creationDate: Date
init(front: String, back: String, creationDate: Date = .now) {
self.front = front
self.back = back
self.creationDate = creationDate
}
}
struct ContentView: View {
var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
.foregroundStyle(.tint)
Text("Hello, world!")
}
.padding()
}
}
#Preview {
ContentView()
}
After installing beta 8 I'm suddenly getting the following:
ld: warning: building for 'macCatalyst', but linking in dylib (/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa.tbd) built for 'macOS'
Any help gratefully received.
Where can I download the code for this app? I know its listed on the video page, but I would like a link to somewhere to download it