Post

Replies

Boosts

Views

Activity

Reply to iOS 17b6: Simultaneous accesses to ..., but modification requires exclusive access crash using Observation and SwiftUI
Why do you need a shared static property on AppModel? This is obviously just a demo project to demonstrate the issue. In my real project, that property has to be accessible from other parts of the app Since Folder conforms to identifiable in SidebarView could you just use ForEach(folders) { folder in? Doesn't make a difference. The crash output looks like this: @ObservationIgnored private let _$observationRegistrar = Observation.ObservationRegistrar() internal nonisolated func access<Member>( keyPath: KeyPath<AppModel , Member> ) { _$observationRegistrar.access(self, keyPath: keyPath) } internal nonisolated func withMutation<Member, MutationResult>( keyPath: KeyPath<AppModel , Member>, _ mutation: () throws -> MutationResult ) rethrows -> MutationResult { try _$observationRegistrar.withMutation(of: self, keyPath: keyPath, mutation) --> Thread 1: Simultaneous accesses to 0x281bcc760, but modification requires exclusive access } @ObservationIgnored private var _selectedFolder: Folder? = nil
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Aug ’23
Reply to Swift compiler crash in Xcode 15 beta 3 (15A5195k)
Here's a project to demonstrate the issue: import SwiftUI import Observation struct ContentView: View { var body: some View { VStack { Image(systemName: "globe") .imageScale(.large) .foregroundStyle(.tint) Text("Hello, world!") } .padding() } } typealias ResolveServiceCompletionBlock = (Bool, Error?) -> Void @Observable class ServiceBrowser: NSObject { fileprivate var resolveServiceCompletionHandler: ResolveServiceCompletionBlock? = nil } It seems like the issue is with the Observation protocol as removing @Observable works. Apple folks: FB12567650
Topic: Programming Languages SubTopic: Swift Tags:
Jul ’23
Reply to UIPointerStyle.hidden() with SwiftUI?
With UIKit, it is possible to set the pointer style or just hide it through the UIPointerInteractionDelegate: func pointerInteraction(_ interaction: UIPointerInteraction, styleFor region: UIPointerRegion) -> UIPointerStyle? { // Hide the pointer in the screen view return UIPointerStyle.hidden() } I’m unable to find anything that would do the same on SwiftUI. Apple folks: FB12418053
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Jun ’23
Reply to @Observable and didSet?
So didSet is allowed but you're not able to do much with it as you cannot make any reference to self or any of it's members: Cannot find 'self' in scope; did you mean to use it in a type or extension context? Instance member 'scalingMode' cannot be used on type 'MySettings'; did you mean to use a value of this type instead?
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Jun ’23
Reply to iOS 17b6: Simultaneous accesses to ..., but modification requires exclusive access crash using Observation and SwiftUI
Why do you need a shared static property on AppModel? This is obviously just a demo project to demonstrate the issue. In my real project, that property has to be accessible from other parts of the app Since Folder conforms to identifiable in SidebarView could you just use ForEach(folders) { folder in? Doesn't make a difference. The crash output looks like this: @ObservationIgnored private let _$observationRegistrar = Observation.ObservationRegistrar() internal nonisolated func access<Member>( keyPath: KeyPath<AppModel , Member> ) { _$observationRegistrar.access(self, keyPath: keyPath) } internal nonisolated func withMutation<Member, MutationResult>( keyPath: KeyPath<AppModel , Member>, _ mutation: () throws -> MutationResult ) rethrows -> MutationResult { try _$observationRegistrar.withMutation(of: self, keyPath: keyPath, mutation) --> Thread 1: Simultaneous accesses to 0x281bcc760, but modification requires exclusive access } @ObservationIgnored private var _selectedFolder: Folder? = nil
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Aug ’23
Reply to Swift compiler crash in Xcode 15 beta 3 (15A5195k)
Here's a project to demonstrate the issue: import SwiftUI import Observation struct ContentView: View { var body: some View { VStack { Image(systemName: "globe") .imageScale(.large) .foregroundStyle(.tint) Text("Hello, world!") } .padding() } } typealias ResolveServiceCompletionBlock = (Bool, Error?) -> Void @Observable class ServiceBrowser: NSObject { fileprivate var resolveServiceCompletionHandler: ResolveServiceCompletionBlock? = nil } It seems like the issue is with the Observation protocol as removing @Observable works. Apple folks: FB12567650
Topic: Programming Languages SubTopic: Swift Tags:
Replies
Boosts
Views
Activity
Jul ’23
Reply to UIPointerStyle.hidden() with SwiftUI?
With UIKit, it is possible to set the pointer style or just hide it through the UIPointerInteractionDelegate: func pointerInteraction(_ interaction: UIPointerInteraction, styleFor region: UIPointerRegion) -> UIPointerStyle? { // Hide the pointer in the screen view return UIPointerStyle.hidden() } I’m unable to find anything that would do the same on SwiftUI. Apple folks: FB12418053
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jun ’23
Reply to @Observable and didSet?
So didSet is allowed but you're not able to do much with it as you cannot make any reference to self or any of it's members: Cannot find 'self' in scope; did you mean to use it in a type or extension context? Instance member 'scalingMode' cannot be used on type 'MySettings'; did you mean to use a value of this type instead?
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jun ’23
Reply to TableColumn with text and image
Someone suggested this solution: Text(Image(systemName: "desktopcomputer")) + Text(verbatim: " ") + Text(computer.name) Not great but at least it works. I think this should be addressed by the SwiftUI team. Apple folks: FB12004569
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Feb ’23