Получение Компилятор не может проверить тип этого выражения в разумные сроки; попробуйте разбить выражение на отдельные подвыражения

В настоящее время я изучаю SwiftUI и столкнулся с проблемой. Компилятор не может проверить выражение.

Все началось, когда я добавил текст (дата обновления). Кроме того, Update - это созданная мной структура, в которой одним из элементов данных является дата типа String.

Это связано с длиной кода ??

Я добавил код и снимок ошибки.

import SwiftUI

struct UpdateList: View {
    
    var body: some View {
        
        NavigationView {
            List(updateData) { update in
                NavigationLink(destination: Text(update.text)) {
                    VStack(alignment: .leading) {

                        Text(update.title)
                            .font(.system(size: 20, weight: .bold))

                        Text(update.text)
                            .font(.subheadline)
                            .lineLimit(2)
                            .foregroundColor(Color(#colorLiteral(red: 0.2549019754, green: 0.2745098174, blue: 0.3019607961, alpha: 1)))

                        Text(update.date)   //all the errors occurred when typed this
                            .forgroundColor(.secondary)

                    }
                }
            }
            .navigationBarTitle(Text("Updates"))
        }
        
    }
}

struct UpdateList_Previews: PreviewProvider {
    static var previews: some View {
        UpdateList()
    }
}

struct Update: Identifiable{
    var id = UUID()
    var image: String
    var title: String
    var text: String
    var date: String
}

let updateData: [Update] = [
    Update(image: "Card1", title: "SwiftUI Advanced", text: "Take your app to App Store with advanced techniques like API data, packages and CMS", date: "JAN 1"),
    Update(image: "Card2", title: "WebFlow", text: "Design and animate a high converting landing page with advanced interations, payments and CMS", date: "OCT 17"),
    Update(image: "Card3", title: "ProtoPie", text: "Quickly Prototype advanced animations nd interactions for mobile and Web", date: "AUG 27"),
    Update(image: "Card4", title: "SwiftUI", text: "Learn how to code custom UI, animations and gestures and components in Xcode 11", date: "JUNE 26"),
    Update(image: "Card5", title: "Framer Playground", text: "Create powerful animations and interactions with Framer X code editor", date: "JUNE 11")
]

Какие-либо предложения??

Вот снимок: https://i.stack.imgur.com/LXOrH.png

заранее спасибо


person Hunter11    schedule 23.05.2021    source источник
comment
См. Это: hackingwithswift.com/quick -start / swiftui /   -  person aheze    schedule 23.05.2021
comment
Форматирование даты здесь бесполезно. Уже пробовали @aheze.   -  person Hunter11    schedule 23.05.2021
comment
Попробуйте вытащить каждое представление в вычисляемое свойство, тогда ошибка компилятора будет в этом свойстве, а не в теле. Вот пример stackoverflow.com/questions/67403140/ перетащите-разделители-в-swiftui /.   -  person Helperbug    schedule 24.05.2021
comment
Вообще говоря, обнаруженная ошибка на самом деле означает, что Swift не имеет ни малейшего представления о том, что происходит, и не касается типов или ошибок типов во всех случаях. Как говорит @ patrick-wynne, в данном случае это, скорее всего, простая опечатка. Похоже, Swift не знает, что forgroundColor не является методом, потому что не уверен, для какого типа он не является методом. Как говорит @helperbug, один из способов отладить это - вытащить каждое представление в вычисляемое свойство. Проще говоря, я стараюсь удалять представления одно за другим, пока не найду одно, вызывающее проблему, а затем вытаскиваю только это, чтобы выяснить проблему.   -  person deaton.dg    schedule 24.05.2021
comment
Я извлек содержимое VStack во вложенное представление, и оно сработало. Спасибо за помощь @Helperbug   -  person Hunter11    schedule 24.05.2021


Ответы (1)


.forgroundColor(.secondary)

должно быть

.foregroundColor(.secondary)
person Patrick Wynne    schedule 23.05.2021
comment
Спасибо, что упомянули об этом. Извлечение кода в subview решило проблему. Я сослался на это: youtube.com/watch?v=uC3X4FoielU - person Hunter11; 24.05.2021