मुझे एक्सकोड 12 (बीटा) (मैकोज़ ऐप) में स्विफ्टयूआई सूची दृश्य में गंभीर समस्या है।

जब कोई सूची आइटम, जिसे चयनित किया जाता है, हटा दिया जाता है, तो सूची हर बार क्रैश हो जाती है।

"[सामान्य] पंक्ति 2 पंक्ति श्रेणी से बाहर [0-1] rowViewAtRow के लिए: createIfNeeded:"

मुझे स्विफ्टयूआई में एक बग की तरह लग रहा है। दुर्घटना को रोकने के लिए मैं क्या कर सकता हूं? मैंने पहले ही कई चीजों की कोशिश की है, लेकिन कोई सफलता नहीं मिली है।

उदाहरण कोड:

//
// Example to reproduce bug
// * Select no item or other than last item and press button: selection is reset, last item is removed, no crash
// * Select last list item and press button "Delete last item" => Crash
//

import SwiftUI

class MyContent: ObservableObject {
    @Published var items: [String] = []
    @Published var selection: Set<String> = Set()
    
    init() {
        for i in 1...5 {
            self.items.append(String(i))
        }
    }
}

struct MyView: View {
    @ObservedObject var content: MyContent = MyContent()
    
    var body: some View {
        VStack {
            List(content.items, id: \.self, selection: $content.selection) {
                item in
                Text("\(item)")
            }
            
            Button("Delete last item", action: {
                if content.items.count > 0 {
                    content.selection = Set()  // reset selection
                    var newItems = Array(content.items)
                    newItems.removeLast()
                    content.items = newItems
                }
            })
        }
    }
}
0
ikemuc 12 सितंबर 2020, 16:10

1 उत्तर

सबसे बढ़िया उत्तर

MacOS 11.0 बीटा 7 (20A5374g) स्थापित करने के बाद पुन: परीक्षण किया गया। उदाहरण कोड अब और क्रैश नहीं होता है, ऐसा लगता है कि बग ठीक हो गया है।

परीक्षण के लिए सभी को धन्यवाद और इसलिए मुझे संकेत दे रहा है कि यह एक मैकोज़ बीटा बग है। :-)

0
ikemuc 21 सितंबर 2020, 09:50