Просмотр, что вызывает авариюIOS

Программируем под IOS
Ответить
Anonymous
 Просмотр, что вызывает аварию

Сообщение Anonymous »

Во время тестирования на симуляторах я столкнулся с проблемой, в которой ViewThats , по -видимому, имеет проблему с потоком. Это может вызвать предупреждения или аварий. Конфигурация < /li>
[*] 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.
These changes are not really fixing the problem, they are just stopping it from happening for the setup described. So I need a more reliable fix. In particular, I am wondering if there would be a way to prevent the problem with some kind of annotation or actor directive in the code?
How can the code be fixed so that the issues are not seen when running as described?

Подробнее здесь: https://stackoverflow.com/questions/797 ... sing-crash
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»