SwiftUI字典-编译器无法在合理的时间内对此表达式进行类型检查

SwiftUI字典-编译器无法在合理的时间内对此表达式进行类型检查,swift,dictionary,compiler-errors,swiftui,Swift,Dictionary,Compiler Errors,Swiftui,当我在字典上循环以获取特定键的值时,我得到了这个错误,但我不知道如何进一步简化它 存储字典 @Published var weekDayDictionary : [String : String] = UserDefaults.standard.dictionary(forKey: "weekDayDictionary") as? [String : String] ?? [:] { didSet { UserDefaults.stan

当我在字典上循环以获取特定键的值时,我得到了这个错误,但我不知道如何进一步简化它

存储字典

@Published var weekDayDictionary : [String : String] = UserDefaults.standard.dictionary(forKey: "weekDayDictionary") as? [String : String] ?? [:] {
        didSet {
            UserDefaults.standard.set(self.weekDayDictionary, forKey: "weekDayDictionary")
        }
    }
作用

func displayWeekDayTime(dictionary: [String: String], identifier: String) -> AnyView {
        var time = ""
        for (key, _) in dictionary {
            if key == identifier {
                time = dictionary[key]!
            }
        }
        return AnyView(Text(time))
    }
我有一个字符串作为标识符,如果它等于字典中的键,我想得到这个值

我也试过了

func displayWeekDayTime(dictionary: [String: String], identifier: String) -> String {
        var time = ""
        time = dictionary[identifier]!
        return time
    }

Text(self.displayWeekDayTime(dictionary: self.customModifiers.weekDayDictionary, identifier: item.title))

有没有一种更简单的方法可以从已知键中获取值而不出现此错误?

与您的问题无关,但为什么不简单地
AnyView(Text(dictionary[identifier]?))
循环所有字典键绝对是不可能的。与其返回
AnyView
,不如返回
some视图
,并用
@ViewBuilder
注释函数。我建议你把代码分成几个部分。此错误通常发生在一个函数中有大量视图代码时。@Leo Dabus您是对的,但仍然会出现错误。在函数前面添加
@ViewBuilder
@ViewBuilder func displaywkdaytime(…
)-否则这只是猜测。与您的问题无关,但为什么不简单地添加
AnyView(文本)呢(字典[标识符]??“”)
循环所有字典键绝对是不可能的。与其返回
AnyView
,不如返回
some View
,并用
@ViewBuilder
注释函数。我建议您将代码分成几个部分。当一个函数中有大量视图代码时,通常会发生此错误。@Leo d如果您是对的,但仍然会出现错误。请在函数前面添加
@ViewBuilder
@ViewBuilder func displayWeekDayTime(…
)-否则这只是猜测。