0

I can see all the Items in the list that don’t have a parent, as expected, and I can display all those that have children. However, I encounter an error when attempting to compact anyone with children.

I have notice that the error appears when I compile in Mac OS 15.1, but not on IOS 18.1 . I neither have an error if I use OutlineGroup without a List. But Also appears if I use table.

The code bellow is the example code that you can see in the QuickHelp for List in Xcode.

struct ContentView: View {
    struct FileItem: Hashable, Identifiable, CustomStringConvertible {
        var id: Self { self }
        var name: String
        var children: [FileItem]? = nil
        var description: String {
            switch children {
            case nil:
                return "📄 \(name)"
            case .some(let children):
                return children.isEmpty ? "📂 \(name)" : "📁 \(name)"
            }
        }
    }
    let fileHierarchyData: [FileItem] = [
      FileItem(name: "users", children:
        [FileItem(name: "user1234", children:
          [FileItem(name: "Photos", children:
            [FileItem(name: "photo001.jpg"),
             FileItem(name: "photo002.jpg")]),
           FileItem(name: "Movies", children:
             [FileItem(name: "movie001.mp4")]),
              FileItem(name: "Documents", children: [])
          ]),
         FileItem(name: "newuser", children:
           [FileItem(name: "Documents", children: [])
           ])
        ]),
        FileItem(name: "private", children: nil)
    ]
    var body: some View {
        List(fileHierarchyData, children: \.children) { item in
            Text(item.description)
        }
    }
}
...
Row index -1 out of row range (numberOfRows: 9) for <SwiftUI.SwiftUIOutlineListView: 0x112087000>
(
    0   CoreFoundation                      0x000000018c834ec0 __exceptionPreprocess + 176
    1   libobjc.A.dylib                     0x000000018c31acd8 objc_exception_throw + 88
    2   AppKit                              0x00000001903eb304 -[NSTableRowData _availableRowViewWhileUpdatingAtRow:] + 0
    3   SwiftUI                             0x00000001bb365224 $s7SwiftUI0A17UIOutlineListViewC11removeItems2at8inParent13withAnimationy10Foundation8IndexSetV_ypSgSo07NSTableeL7OptionsVtF + 1388
    4   SwiftUI                             0x00000001bb3656f8 $s7SwiftUI0A17UIOutlineListViewC11removeItems2at8inParent13withAnimationy10Foundation8IndexSetV_ypSgSo07NSTableeL7OptionsVtFTo + 252
    5   CoreFoundation                      0x000000018c7a28b4 __invoking___ + 148
    6   CoreFoundation                      0x000000018c7a272c -[NSInvocation invoke] + 428
    7   CoreFoundation                      0x000000018c7d7958 -[NSInvocation invokeWithTarget:] + 64
    8   AppKit                              0x000000019052a110 -[_NSObjectAnimator forwardInvocation:] + 1512
    9   CoreFoundation                      0x000000018c7a0ee4 ___forwarding___ + 964
    10  CoreFoundation                      0x000000018c7a0a60 _CF_forwarding_prep_0 + 96
    11  SwiftUI                             0x00000001bb37e458 $s7SwiftUI22OutlineListCoordinatorC19recursivelyDiffRows_4with2by9expandAllyAA0a9UIOutlineD4ViewC_AA0dC4ItemCAA0nD4TreeVAA14ExpansionStateOtF + 37012
    12  SwiftUI                             0x00000001bb3802b8 $s7SwiftUI22OutlineListCoordinatorC19recursivelyDiffRows_4with2by9expandAllyAA0a9UIOutlineD4ViewC_AA0dC4ItemCAA0nD4TreeVAA14ExpansionStateOtF + 44788
    13  SwiftUI                             0x00000001bb37538c $s7SwiftUI22OutlineListCoordinatorC8diffRows2of2toyAA0a9UIOutlineD4ViewC_AA0kD4TreeVtF + 120
    14  SwiftUI                             0x00000001bb36f3d4 $s7SwiftUI22OutlineListCoordinatorC6update4diff04viewD4Tree18idSelectionChanged010navigationk4SeedL0011templateRowL011transactionySb_AA04ViewdI0VS3bAA11TransactionVtFyycfU_yyXEfU_ + 220
    15  SwiftUI                             0x00000001bb369044 $s7SwiftUI22OutlineListCoordinatorC24withSelectionUpdateGuard33_BE7B171B0BEE2A9E27ED12968C3771F8LLyySS_yyXEtF + 1320
    16  SwiftUI                             0x00000001bb36f2d4 $s7SwiftUI22OutlineListCoordinatorC6update4diff04viewD4Tree18idSelectionChanged010navigationk4SeedL0011templateRowL011transactionySb_AA04ViewdI0VS3bAA11TransactionVtFyycfU_ + 708
    17  SwiftUICore                         0x00000002277cb578 $sIeg_ytIegr_TRTA + 28
    18  SwiftUICore                         0x0000000227a6d2b8 $s7SwiftUI6UpdateO15dispatchActionsyyFZ + 1236
    19  SwiftUICore                         0x0000000227a6c79c $s7SwiftUI6UpdateO3endyyFZ + 212
    20  SwiftUICore                         0x0000000227f6061c $sSo9NSRunLoopC7SwiftUIE11addObserveryyyycFZySo05CFRunbF3RefaSg_So0gB8ActivityVSvSgtcfU_Tf4ddd_n + 176
    21  CoreFoundation                      0x000000018c7c17a8 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 36
    22  CoreFoundation                      0x000000018c7c1694 __CFRunLoopDoObservers + 552
    23  CoreFoundation                      0x000000018c7c0380 CFRunLoopRunSpecific + 648
    24  HIToolbox                           0x0000000197c000cc RunCurrentEventLoopInMode + 292
    25  HIToolbox                           0x0000000197c05d1c ReceiveNextEventCommon + 220
    26  HIToolbox                           0x0000000197c06020 _BlockUntilNextEventMatchingListInModeWithFilter + 76
    27  AppKit                              0x0000000190303650 _DPSNextEvent + 660
    28  AppKit                              0x0000000190c2a408 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 688
    29  AppKit                              0x00000001902f675c -[NSApplication run] + 480
    30  AppKit                              0x00000001902cd02c NSApplicationMain + 888
    31  SwiftUI                             0x00000001ba77045c $s7SwiftUI6runAppys5NeverOSo21NSApplicationDelegate_So11NSResponderCXcFTf4e_nAA07TestingdG0C_Tg5Tm + 160
    32  SwiftUI                             0x00000001babf4854 $s7SwiftUI6runAppys5NeverOxAA0D0RzlF + 84
    33  SwiftUI                             0x00000001baf04134 $s7SwiftUI3AppPAAE4mainyyFZ + 224
    34  Marlo SystemManagement.debug.dylib  0x0000000104c5e108 $s22Marlo_SystemManagement0a1_bC3AppV5$mainyyFZ + 40
    35  Marlo SystemManagement.debug.dylib  0x0000000104c5e1d4 __debug_main_executable_dylib_entry_point + 12
    36  dyld                                0x000000018c358274 start + 2840
)
FAULT: NSTableViewException: Row index -1 out of row range (numberOfRows: 9) for <SwiftUI.SwiftUIOutlineListView: 0x112087000>; (user info absent)`
10
  • I can't reproduce this using the given code. Is it all rows you have an issue with or only a specific? if it's the latter could you describe the problematic object? Commented Aug 20, 2024 at 9:42
  • When I have more than one objective that contains child items, I can expand any of them. However, I encounter an error when I try to collapse the child items. Commented Aug 20, 2024 at 17:11
  • Yes but I can't reproduce that so I would need more details to understand the issue. Commented Aug 20, 2024 at 17:53
  • I have notice that the error appears when I compile in Mac OS 15.1, but not on IOS 18.1 . Its seems that the error could be because of the recursive relationship Commented Aug 20, 2024 at 23:03
  • I have modify the code in order to reproduce the error Commented Aug 22, 2024 at 11:34

1 Answer 1

0

It is solve with the update of MAC OS 15.1 Beta 3

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.