Malcolm Hall

@malhal
128 Followers
133 Following
307 Posts
iPhone developer since 2007, Windows Mobile before. Enjoy travelling, playing guitar, home brewing. Academic researcher with a Ph.D. in Computer Science from the University of Glasgow. #SwiftUI #SwiftData
Bloghttp://www.malcolmhall.com
Ah think I might have fallen for the undocumented mistake that sheet's always need a child View.

Submitted FB22770051: Crash when dismissing confirmationDialog via outside tap when presented from a sheet ToolbarItem

https://github.com/feedback-assistant/reports/issues/800

FB22770051: Crash when dismissing confirmationDialog via outside tap when presented from a sheet ToolbarItem · Issue #800 · feedback-assistant/reports

Submission Date 2025-05-13 Status Open Area SwiftUI Operating System Version iOS 26.5 Type Incorrect/Unexpected Behavior Description Description: A critical crash occurs when a confirmationDialog i...

GitHub

It's surprising to me that this crash, triggered by dismissing a confirmation dialog from a sheet's toolbar button, still hasn't been fixed in iOS 26.5 despite being present since iOS 26.

Seems like a nested presentation collision.

https://www.reddit.com/r/SwiftUI/comments/1p5jb36/are_confirmation_dialogs_broken_in_ios_26/

#swiftui

@patrickmcconnell if Photo actually is a class then id: \.self is sometimes necessary if the Identifiable implementation is bad like it is for SwiftData objects.
@ghalldev check out ViewModifier instead of View

@natpanferova don't you need a capture list to make the popover dependent on the latest ingredients? e.g.

.popover(isPresented: $showIngredients) { [ingredients = recipe.ingredients] in
IngredientsView(items: ingredients)
}

@0xWDG id: \.self 🙈
@daringfireball I always thought this was a Safari bug lol

It looks like the CloudKit silent notification bug was caused by some sort of token validation added in iOS 26.4 that was dropping notifications from CloudKit. Fixed in iOS 26.4.1 by bypassing the validation for notifications that come from CloudKit

Credit to @blacktop's excellent IPSW diffs: https://github.com/blacktop/ipsw-diffs/tree/main/26_4_23E246_vs_26_4_1_23E254#usernotificationscore

@alpennec

1. State(initialValue:) with object is a heap allocation every time the View is init which slows down SwiftUI. It's designed for value-types. That's why StateObject was added, it's init is lazy via auto-closure.

2. Yes I suppose because they wanted mutability in deep views. Although they also pass a binding to the model's property into direct child which is strange.

3. For class, Identifiable already implements id using pointer. If you wanted your own id you need a different name.