Swift:在初始化之前使用的变量

时间:2021-07-14 12:36:01

标签: ios swift swiftui

我收到以下编译错误: “在初始化之前使用的变量‘self.entryData’” 如何修复它并在我的 init 方法中正确初始化 @state var entryData?

struct EditEntryView: View {
    @Environment(\.managedObjectContext) private var viewContext
    @State var entryData: EditEntryData
    @ObservedObject var moneyEntry: MoneyEntry
    
    init(entry: MoneyEntry) {
        moneyEntry = entry
        let iOwe = entry.value < 0 ? true : false
        let value = abs(entry.value)
        
        
        entryData = EditEntryData(info: entry.infos, value: String(value), date: entry.date, iOwe: iOwe)
    }
}

struct EditEntryData {
    var info: String = ""
    var value: String = ""
    var date: Date = Date()
    var iOwe: Bool = false
}

1 个答案:

答案 0 :(得分:1)

你需要初始化状态本身,比如

    _entryData = State(initialValue: 
         EditEntryData(info: entry.infos, 
         value: String(value), date: entry.date, iOwe: iOwe))