[*] iPhone 16 Simulator -симулятор под управлением iOS 26.0 Beta 5 (вызывает сбой) < /li>
Simulator iPhone 16 под управлением iOS 18.5 (вызывает аварий) < /li>
Симулятор iPhone 15, работающий в iOS 17.5 (вызывает предупреждение) < /li>
< /ul>

The crash that happens when running on the iPhone 16 simulator with iOS 26.0 beta 5 is as follows:
#0 0x0000000104986f18 in _dispatch_assert_queue_fail ()
#1 0x00000001049bc7f8 in dispatch_assert_queue$V2.cold.1 ()
#2 0x0000000104986ea0 in dispatch_assert_queue ()
#3 0x0000000258e52678 in _swift_task_checkIsolatedSwift ()
#4 0x0000000258e93e0c in swift_task_isCurrentExecutorWithFlagsImpl ()
#5 0x0000000105750504 in closure #1 in closure #1 in ContentView.itemList(items:hint:) ()
#6 0x00000001057507d4 in thunk for @escaping @callee_guaranteed (@unowned Int, @guaranteed String) -> (@owned Text) ()
#7 0x00000001da012d50 in closure #1 () -> τ_0_2 in SwiftUI.ForEachState.item(at: τ_0_0.Index, offset: Swift.Int) -> SwiftUI.ForEachState.Item ()
#8 0x00000001da01d140 in partial apply forwarder for closure #1 () -> τ_0_2 in SwiftUI.ForEachState.item(at: τ_0_0.Index, offset: Swift.Int) -> SwiftUI.ForEachState.Item ()
#9 0x00000001d9d1cd28 in closure #1 (Swift.UnsafeMutablePointer>) throws -> τ_0_0 in SwiftUI.ObservationCenter._withObservation(do: () throws -> τ_0_0) throws -> (value: τ_0_0, accessList: Swift.Optional) ()
#10 0x00000001d96c319c in partial apply forwarder for closure #1 (Swift.UnsafeMutablePointer>) throws -> τ_0_0 in SwiftUI.ObservationCenter._withObservation(do: () throws -> τ_0_0) throws -> (value: τ_0_0, accessList: Swift.Optional) ()
#11 0x00000001d985e9f4 in withUnsafePointer ()
#12 0x00000001da012244 in item ()
#13 0x00000001da00c850 in forEachItem ()
#14 0x00000001da01cea8 in function signature specialization of SwiftUI.ForEachList.applyNodes(from: inout Swift.Int, style: SwiftUI._ViewList_IteratorStyle, list: Swift.Optional>, transform: SwiftUI._ViewList_TemporarySublistTransform, to: (inout Swift.Int, SwiftUI._ViewList_IteratorStyle, SwiftUI._ViewList_Node, SwiftUI._ViewList_TemporarySublistTransform) -> Swift.Bool) -> Swift.Bool ()
#15 0x00000001da0195a8 in protocol witness for SwiftUI.ViewList.applyNodes(from: inout Swift.Int, style: SwiftUI._ViewList_IteratorStyle, list: Swift.Optional>, transform: SwiftUI._ViewList_TemporarySublistTransform, to: (inout Swift.Int, SwiftUI._ViewList_IteratorStyle, SwiftUI._ViewList_Node, SwiftUI._ViewList_TemporarySublistTransform) -> Swift.Bool) -> Swift.Bool in conformance SwiftUI.ForEachList : SwiftUI.ViewList in SwiftUI ()
#16 0x00000001d9c08390 in applySublists ()
#17 0x00000001d9bfd9cc in applySublists ()
#18 0x00000001d9750750 in generic specialization of SwiftUI.DynamicContainerInfo.updateItems(disableTransitions: Swift.Bool) -> (changed: Swift.Bool, hasDepth: Swift.Bool) ()
#19 0x00000001d974f508 in generic specialization of SwiftUI.DynamicContainerInfo.updateValue() -> () ()
#20 0x00000001d9774448 in generic specialization > of implicit closure #1 (Swift.UnsafeMutableRawPointer, __C.AGAttribute) -> () in closure #1 () -> (Swift.UnsafeMutableRawPointer, __C.AGAttribute) -> () in closure #1 (Swift.UnsafePointer) -> AttributeGraph.Attribute in AttributeGraph.Attribute.init(τ_1_0) -> AttributeGraph.Attribute ()
#21 0x00000001c393b728 in AG::Graph::UpdateStack::update ()
#22 0x00000001c393be18 in AG::Graph::update_attribute ()
#23 0x00000001c3943534 in AG::Graph::input_value_ref_slow ()
#24 0x00000001c395b19c in AGGraphGetValue ()
#25 0x00000001d9757894 in merged generic specialization of SwiftUI.DynamicLayoutComputer.updateValue() -> () ()
#26 0x00000001d9774728 in generic specialization > of implicit closure #1 (Swift.UnsafeMutableRawPointer, __C.AGAttribute) -> () in closure #1 () -> (Swift.UnsafeMutableRawPointer, __C.AGAttribute) -> () in closure #1 (Swift.UnsafePointer) -> AttributeGraph.Attribute in AttributeGraph.Attribute.init(τ_1_0) -> AttributeGraph.Attribute ()
#27 0x00000001c393b728 in AG::Graph::UpdateStack::update ()
#28 0x00000001c393be18 in AG::Graph::update_attribute ()
#29 0x00000001c3943384 in AG::Graph::input_value_ref_slow ()
#30 0x00000001c395af58 in AGGraphGetInputValue ()
#31 0x00000001d99a0414 in size ()
#32 0x00000001d9d66cb4 in sizeThatFits ()
#33 0x00000001d9d67760 in protocol witness for SwiftUI.UnaryLayout.sizeThatFits(in: SwiftUI._ProposedSize, context: SwiftUI.SizeAndSpacingContext, child: SwiftUI.LayoutProxy) -> __C.CGSize in conformance SwiftUI._FlexFrameLayout : SwiftUI.UnaryLayout in SwiftUI ()
#34 0x00000001d9b70678 in merged SwiftUI.UnaryLayoutEngine.sizeThatFits(SwiftUI._ProposedSize) -> __C.CGSize ()
#35 0x00000001d9b7039c in ___lldb_unnamed_symbol196603 ()
#36 0x00000001d9ebe890 in sizeThatFits ()
#37 0x00000001d99a0480 in size ()
#38 0x00000001d97ec538 in sizeThatFits ()
#39 0x00000001d9b70678 in merged SwiftUI.UnaryLayoutEngine.sizeThatFits(SwiftUI._ProposedSize) -> __C.CGSize ()
#40 0x00000001d9b7039c in ___lldb_unnamed_symbol196603 ()
#41 0x00000001d9ebe890 in sizeThatFits ()
#42 0x00000001d9ebd23c in sizeThatFits ()
#43 0x00000001d8bab278 in closure #1 (SwiftUI._ViewOutputs, Swift.Bool) -> Swift.Bool in closure #1 () -> () in SwiftUI.SizeFittingLayoutComputer.Engine.explicitAlignment(_: SwiftUI.AlignmentKey, at: SwiftUI.ViewSize) -> Swift.Optional ()
#44 0x00000001d8ba9f7c in closure #1 (SwiftUI._ViewList_Sublist) -> Swift.Bool in SwiftUI.SizeFittingState.applyChildren(selectLast: Swift.Bool, to: (SwiftUI._ViewOutputs, Swift.Bool) -> Swift.Bool) -> () ()
#45 0x00000001d9c0763c in applySublists ()
#46 0x00000001d9c2aa88 in merged partial apply forwarder for closure #1 (inout Swift.Int, SwiftUI._ViewList_IteratorStyle, SwiftUI._ViewList_Node, SwiftUI._ViewList_TemporarySublistTransform) -> Swift.Bool in SwiftUI._ViewList_Node.applySublists(from: inout Swift.Int, style: SwiftUI._ViewList_IteratorStyle, transform: SwiftUI._ViewList_TemporarySublistTransform, to: (SwiftUI._ViewList_Sublist) -> Swift.Bool) -> Swift.Bool ()
#47 0x00000001d9c0be34 in applyNodes ()
#48 0x00000001d9c08390 in applySublists ()
#49 0x00000001d9bfd9cc in applySublists ()
#50 0x00000001d8ba88a4 in applyChildren ()
#51 0x00000001d8bab05c in closure #1 () -> () in SwiftUI.SizeFittingLayoutComputer.Engine.explicitAlignment(_: SwiftUI.AlignmentKey, at: SwiftUI.ViewSize) -> Swift.Optional ()
#52 0x00000001c393c164 in AG::Graph::with_update ()
#53 0x00000001d8bab4a4 in protocol witness for SwiftUI.LayoutEngine.explicitAlignment(_: SwiftUI.AlignmentKey, at: SwiftUI.ViewSize) -> Swift.Optional in conformance SwiftUI.SizeFittingLayoutComputer.Engine : SwiftUI.LayoutEngine in SwiftUI ()
#54 0x00000001d9ebe978 in explicitAlignment ()
#55 0x00000001d9f84570 in function signature specialization Swift.Optional in SwiftUI.StackLayout.(UnmanagedImplementation in _00690F480F8D293143B214DBE6D72CD0).placeChildren(in: SwiftUI.ProposedViewSize) -> (), Argument Types : [Swift.Optional]> of SwiftUI.StackLayout.UnmanagedImplementation.sizeChildrenGenerallyWithConcreteMajorProposal(in: SwiftUI.ProposedViewSize, minorProposalForChild: (SwiftUI.StackLayout.Child) -> Swift.Optional) -> () ()
#56 0x00000001d9f85980 in function signature specialization Swift.Optional in SwiftUI.StackLayout.(UnmanagedImplementation in _00690F480F8D293143B214DBE6D72CD0).placeChildren(in: SwiftUI.ProposedViewSize) -> (), Argument Types : [Swift.Optional]> of SwiftUI.StackLayout.UnmanagedImplementation.placeChildren1(in: SwiftUI.ProposedViewSize, minorProposalForChild: (SwiftUI.StackLayout.Child) -> Swift.Optional) -> () ()
#57 0x00000001d9f8382c in placeChildren ()
#58 0x00000001d9f83524 in explicitAlignment ()
#59 0x00000001d9f822fc in explicitAlignment ()
#60 0x00000001d997308c in merged protocol witness for SwiftUI.Layout.explicitAlignment(of: SwiftUI.HorizontalAlignment, in: __C.CGRect, proposal: SwiftUI.ProposedViewSize, subviews: SwiftUI.LayoutSubviews, cache: inout τ_0_0.Cache) -> Swift.Optional in conformance SwiftUI._VStackLayout : SwiftUI.Layout in SwiftUI ()
#61 0x00000001d9bab3e0 in closure #1 (Swift.UnsafeMutablePointer) -> Swift.Optional in closure #1 (Swift.UnsafeMutablePointer>) -> Swift.Optional in SwiftUI.ViewLayoutEngine.explicitAlignment(_: SwiftUI.AlignmentKey, at: SwiftUI.ViewSize) -> Swift.Optional ()
#62 0x00000001d9bab078 in closure #1 (Swift.UnsafeMutablePointer>) -> Swift.Optional in SwiftUI.ViewLayoutEngine.explicitAlignment(_: SwiftUI.AlignmentKey, at: SwiftUI.ViewSize) -> Swift.Optional ()
#63 0x00000001d9bb1218 in partial apply forwarder for closure #1 (Swift.UnsafeMutablePointer>) -> Swift.Optional in SwiftUI.ViewLayoutEngine.explicitAlignment(_: SwiftUI.AlignmentKey, at: SwiftUI.ViewSize) -> Swift.Optional ()
#64 0x00000001d985e9f4 in withUnsafePointer ()
#65 0x00000001d9baaf30 in explicitAlignment ()
#66 0x00000001d9bab978 in protocol witness for SwiftUI.LayoutEngine.explicitAlignment(_: SwiftUI.AlignmentKey, at: SwiftUI.ViewSize) -> Swift.Optional in conformance SwiftUI.ViewLayoutEngine : SwiftUI.LayoutEngine in SwiftUI ()
#67 0x00000001d9ebe978 in explicitAlignment ()
#68 0x00000001d99a11d0 in explicitAlignment ()
#69 0x00000001d9b70014 in explicitAlignment ()
#70 0x00000001d9b703b0 in protocol witness for SwiftUI.LayoutEngine.explicitAlignment(_: SwiftUI.AlignmentKey, at: SwiftUI.ViewSize) -> Swift.Optional in conformance SwiftUI.UnaryLayoutEngine : SwiftUI.LayoutEngine in SwiftUI ()
#71 0x00000001d9ebe978 in explicitAlignment ()
#72 0x00000001d97ea83c in SwiftUI.ViewDimensions.subscript.getter : (SwiftUI.AlignmentKey) -> CoreGraphics.CGFloat ()
#73 0x00000001d967f8cc in function signature specialization __C.CGPoint in SwiftUI._ZStackLayout.placeSubviews(in: __C.CGRect, proposal: SwiftUI.ProposedViewSize, subviews: SwiftUI.LayoutSubviews, cache: inout ()) -> (), Argument Types : [SwiftUI._ZStackLayout]> of generic specialization , SwiftUI.ViewDimensions>, __C.CGPoint> of Swift.Sequence.reduce(τ_1_0, (τ_1_0, τ_0_0.Element) throws -> τ_1_0) throws -> τ_1_0 ()
#74 0x00000001d9683658 in function signature specialization of SwiftUI._ZStackLayout.placeSubviews(in: __C.CGRect, proposal: SwiftUI.ProposedViewSize, subviews: SwiftUI.LayoutSubviews, cache: inout ()) -> () ()
#75 0x00000001d9baaae8 in closure #1 (Swift.UnsafeMutablePointer) -> () in SwiftUI.ViewLayoutEngine.childGeometries(at: SwiftUI.ViewSize, origin: __C.CGPoint) -> Swift.Array ()
#76 0x00000001d9baa898 in childGeometries ()
#77 0x00000001d9bab570 in static SwiftUI.ViewLayoutEngine.defaultAlignment(_: SwiftUI.AlignmentKey, size: SwiftUI.ViewSize, data: Swift.UnsafeMutableRawPointer) -> Swift.Optional ()
#78 0x00000001d9bab998 in protocol witness for static SwiftUI.DefaultAlignmentFunction.defaultAlignment(_: SwiftUI.AlignmentKey, size: SwiftUI.ViewSize, data: Swift.UnsafeMutableRawPointer) -> Swift.Optional in conformance SwiftUI.ViewLayoutEngine : SwiftUI.DefaultAlignmentFunction in SwiftUI ()
#79 0x00000001d9b8ae90 in merged protocol witness for SwiftUI.Layout.explicitAlignment(of: SwiftUI.HorizontalAlignment, in: __C.CGRect, proposal: SwiftUI.ProposedViewSize, subviews: SwiftUI.LayoutSubviews, cache: inout τ_0_0.Cache) -> Swift.Optional in conformance SwiftUI._ZStackLayout : SwiftUI.Layout in SwiftUI ()
#80 0x00000001d9bab3e0 in closure #1 (Swift.UnsafeMutablePointer) -> Swift.Optional in closure #1 (Swift.UnsafeMutablePointer>) -> Swift.Optional in SwiftUI.ViewLayoutEngine.explicitAlignment(_: SwiftUI.AlignmentKey, at: SwiftUI.ViewSize) -> Swift.Optional ()
#81 0x00000001d9bab078 in closure #1 (Swift.UnsafeMutablePointer>) -> Swift.Optional in SwiftUI.ViewLayoutEngine.explicitAlignment(_: SwiftUI.AlignmentKey, at: SwiftUI.ViewSize) -> Swift.Optional ()
#82 0x00000001d9bb1218 in partial apply forwarder for closure #1 (Swift.UnsafeMutablePointer>) -> Swift.Optional in SwiftUI.ViewLayoutEngine.explicitAlignment(_: SwiftUI.AlignmentKey, at: SwiftUI.ViewSize) -> Swift.Optional ()
#83 0x00000001d985e9f4 in withUnsafePointer ()
#84 0x00000001d9baaf30 in explicitAlignment ()
#85 0x00000001d9bab978 in protocol witness for SwiftUI.LayoutEngine.explicitAlignment(_: SwiftUI.AlignmentKey, at: SwiftUI.ViewSize) -> Swift.Optional in conformance SwiftUI.ViewLayoutEngine : SwiftUI.LayoutEngine in SwiftUI ()
#86 0x00000001d9ebe978 in explicitAlignment ()
#87 0x00000001d97ea83c in SwiftUI.ViewDimensions.subscript.getter : (SwiftUI.AlignmentKey) -> CoreGraphics.CGFloat ()
#88 0x00000001d9d65f7c in generic specialization of SwiftUI.FrameLayoutCommon.commonPlacement(of: SwiftUI.LayoutProxy, in: SwiftUI.PlacementContext, childProposal: SwiftUI._ProposedSize) -> SwiftUI._Placement ()
#89 0x00000001d9d671c4 in placement ()
#90 0x00000001d9d67718 in protocol witness for SwiftUI.UnaryLayout.placement(of: SwiftUI.LayoutProxy, in: τ_0_0.PlacementContextType) -> SwiftUI._Placement in conformance SwiftUI._FlexFrameLayout : SwiftUI.UnaryLayout in SwiftUI ()
#91 0x00000001d9b702c4 in childPlacement ()
#92 0x00000001d9ebe9c0 in childPlacement ()
#93 0x00000001d9bfd76c in merged generic specialization of SwiftUI.UnaryChildGeometry.value.getter : SwiftUI.ViewGeometry ()
#94 0x00000001d9c1c860 in merged generic specialization > of implicit closure #1 (Swift.UnsafeMutableRawPointer, __C.AGAttribute) -> () in closure #1 () -> (Swift.UnsafeMutableRawPointer, __C.AGAttribute) -> () in closure #1 (Swift.UnsafePointer) -> AttributeGraph.Attribute in AttributeGraph.Attribute.init(τ_1_0) -> AttributeGraph.Attribute ()
#95 0x00000001c393b728 in AG::Graph::UpdateStack::update ()
#96 0x00000001c394a874 in AG::Subgraph::update ()
#97 0x00000001d9d009b4 in function signature specialization () in SwiftUI.GraphHost.runTransaction() -> (), Argument Types : []> of SwiftUI.GraphHost.runTransaction(_: Swift.Optional, do: () -> (), id: Swift.Optional) -> () ()
#98 0x00000001da0f55a4 in closure #2 () -> () in SwiftUI.ViewGraph.updateOutputsAsync(at: SwiftUI.Time) -> Swift.Optional ()
#99 0x00000001c395a208 in AGGraphWithMainThreadHandler ()
#100 0x00000001da0efe80 in updateOutputsAsync ()
#101 0x00000001da0e87d4 in renderAsync ()
#102 0x00000001d982d87c in SwiftUI.ViewGraphHost.displayLinkTimer(timestamp: SwiftUI.Time, targetTimestamp: SwiftUI.Time, isAsyncThread: Swift.Bool) -> () ()
#103 0x00000001d982f5d8 in SwiftUI.ViewGraphDisplayLink.displayLinkTimer(__C.CADisplayLink) -> () ()
#104 0x00000001d982fb48 in @objc SwiftUI.ViewGraphDisplayLink.displayLinkTimer(__C.CADisplayLink) -> () ()
#105 0x000000018c450a24 in CA::Display::DisplayLinkItem::dispatch_ ()
#106 0x000000018c44c544 in CA::Display::DisplayLink::dispatch_items ()
#107 0x000000018c562284 in display_timer_callback ()
#108 0x00000001804114ac in __CFMachPortPerform ()
#109 0x000000018044dbe0 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#110 0x000000018044d1f8 in __CFRunLoopDoSource1 ()
#111 0x000000018044c2c0 in __CFRunLoopRun ()
#112 0x0000000180446e24 in _CFRunLoopRunSpecificWithOptions ()
#113 0x00000001810ca48c in -[NSRunLoop(NSRunLoop) runMode:beforeDate:] ()
#114 0x00000001810ca65c in -[NSRunLoop(NSRunLoop) run] ()
#115 0x00000001d9830bd4 in function signature specialization of static SwiftUI.ViewGraphDisplayLink.asyncThread(arg: Swift.Optional) -> () ()
#116 0x00000001d982fba8 in @objc static SwiftUI.ViewGraphDisplayLink.asyncThread(arg: Swift.Optional) -> () ()
#117 0x00000001810f1358 in __NSThread__start__ ()
#118 0x0000000104a265f0 in _pthread_start ()
The warning that is seen when running on the iPhone 15 simulator with iOS 17.5 is as follows:
warning: data race detected: @MainActor function at StackOverflow/ContentView.swift:52 was not called on the main thread
Line 52 is the ForEach inside the function itemList.
It seems to me that this must be a SwiftUI bug, especially since it is only under certain circumstances. For example, the issue is not seen when any of the following changes are made:
- a different text size is used
- the second text item is shorter (1 line instead of 3)
- any 1 of the 3 views inside ViewthatFits is commented out
- vertical padding is added to the chevron
- the chevron is removed from view
- A VStack is used instead of a ZStack as the outer container.
How can the code be fixed so that the issues are not seen when running as described?
Подробнее здесь: https://stackoverflow.com/questions/797 ... sing-crash
Мобильная версия