Làm thế nào để gỡ lỗi trước điều kiện tiên quyết thất bại trong Xcode?


9

Tôi đang xây dựng Ứng dụng SwiftUI trên Xcode 11 nhưng sẽ chấm dứt ngay lập tức bất cứ khi nào tôi chuyển sang một tab cụ thể trong ứng dụng.

Điều đó là, nó luôn luôn trỏ đến Application Delegatetập tin, mà tôi nghĩ không thực sự là vấn đề. Tôi cũng gặp lỗi này trong bảng điều khiển precondition failure: invalid input index: 2và đó là lỗi, không có thêm thông tin chi tiết về tệp, mảng hoặc chức năng mà lỗi này đến từ đâu.

nhập mô tả hình ảnh ở đây

Có cách nào trong Xcode để cô lập mà gây ra vấn đề này không?


In những gì được hiển thị trong giao diện điều khiển? Có vẻ như có thể có một chỉ số nằm ngoài phạm vi lỗi. Kiểm tra bất kỳ mảng nào bạn có thể có tại bộ điều khiển xem đích. Hoặc chỉ cần kiểm tra xem ViewContoder mà bạn đang điều hướng với Tab có được khởi tạo không và trong mảng tabControll.viewControllers.
Alexander

Xin chào @Alexander, để khởi tạo, tôi chắc chắn quan điểm của tôi được khởi tạo đúng cách. Và vâng, tôi cũng nghĩ đó là một vấn đề mảng, nhưng tôi không biết mảng nào trong hàm nào và trong lớp nào, bởi vì khung nhìn đó và các khung nhìn của nó chứa đầy các mảng. Đó là lý do tại sao tôi muốn biết cách gỡ lỗi đúng cách. Hiện tại, tôi đang cố gắng thay đổi nhiều thứ trong mã của mình, hy vọng tôi sẽ sửa lỗi (thậm chí vô tình).
màu xám

Tôi đang nhận được điều này, trong một tình huống rất giống nhau. Đối với tôi, ứng dụng gặp sự cố với cùng một lỗi và đầu ra bảng điều khiển gỡ lỗi. Nó dường như là một điều kiện tiên quyết C ++ (do đó, trong chính Swift - do đó, điểm dừng không hoạt động). Đối với tôi, điều đó xảy ra khi cố gắng truy cập kích thước của GeometryProxy.
Daniel Thorpe

Tương tự ở đây - truy cập kích thước của GeometryProxy, để sao chép vào@Binding
Grimxn

Xảy ra với tôi Cuộc gọi tiếp theo trong ngăn xếp là GeometryProxy.size.getter () tuy nhiên nó chỉ xảy ra với tôi nếu tôi truy cập các tab SwiftUI theo một thứ tự nhất định. GeometryReader chỉ được sử dụng trong tab gây ra sự cố, (Sự cố chỉ xảy ra nếu tab đó được truy cập thứ ba).
tarocation

Câu trả lời:


10

Tôi đã có một TabView chứa chế độ xem sử dụng Danh sách. Khi chuyển đổi tab, ứng dụng của tôi đã gặp sự cố với một lỗi tương tự: "lỗi tiền điều kiện: thuộc tính không thể đặt giá trị ban đầu: 99" Lỗi này:

var body: some View {
    TabView {
        ListView()
        .tabItem {
            Image(systemName: "list.dash")
            Text("List")
        }

Việc bọc ListView trong NavigationView đã khắc phục sự cố. Tôi đã thấy việc sử dụng NavigationView này trên "Swift Live - 007 SwiftUI TabView && List" của Caleb Wells . https://youtu.be/v1A1H1cQowI

https://github.com/calebrwells/A-Swiftly-Tilting-Planet/tree/master/2019/Live%20Streams/TabView%20List

Điều này đã làm việc:

var body: some View {
    TabView {
        NavigationView { ListView() }
        .tabItem {
            Image(systemName: "list.dash")
            Text("List")
        }

Tôi có lỗi tương tự với Formbên trong TabViewđã có bên trong a NavigationView. Để khắc phục sự cố, tôi phải bọc Formmột hình nộm khác NavigationViewvà giấu nó ra khỏi màn hình .padding(.top, -60). 🤷♂️
Palimondo

1
Điều này hoạt động, nhưng nó không lý tưởng. Tôi không muốn một cái nhìn điều hướng.
Imthath

Chế độ xem tùy chỉnh của tôi đã có Danh sách trong NavigationView. Những gì tôi đã làm là tôi đã xóa NavigationView khỏi Chế độ xem tùy chỉnh của mình và thêm nó như bạn đã chỉ định ở trên. Sau sự thay đổi đó, vụ tai nạn đã biến mất.
Stefan Vasiljevic

@Palimondo Tôi nghĩ nó phải là -100 chứ không phải -60. cảm ơn vì đã sửa chữa
PaFi

@Imthath Tôi đồng ý với bạn
Cagatay
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.