NaN показывается, когда расчет не имеет значения внутри. Как можно отобразить «0» или «-» вместо этого в SwiftUI - PullRequest
1 голос
/ 20 февраля 2020

Если вычисление выполняется в SwiftUI и в текстовое поле не добавляются значения, вместо него отображается «-NaN» (не Nummber?).

Как можно отобразить значение (например, «0», «-»), пока значения не будут вставлены?

Я пытался добавить @State private var display = 0, но он отображал оба значения ...

Пример кода:

 struct ContentView: View {
    @EnvironmentObject var userData: UserData

    var Brutto: Double{
        let price = Double(userData.BPrice) ?? 0
        let rent = Double(userData.Rent) ?? 0

        let Brutto = rent * 12 / price * 100

        return Brutto
    }

    var body: some View {
        VStack {            
            Text ("\(Brutto, specifier: "%.1f")")
        }

// Файл пользовательских данных:

class UserData : ObservableObject {

  private static let userDefaultBPrice = "BPrice"
  private static let userDefaultRent = "Rent"


  @Published var BuyingPrice = UserDefaults.standard.string(forKey: UserData.userDefaultBPrice) ?? "" 
  {
    didSet {
      UserDefaults.standard.set(self.BPrice, forKey: UserData.userDefaultBPrice)
    }
  }

  @Published var Rent = UserDefaults.standard.string(forKey: UserData.userDefaultRent) ?? "" {
    didSet {
      UserDefaults.standard.set(self.Rent, forKey: UserData.userDefaultRent)
    }
  }
  private var canc: AnyCancellable!

}

Image Displaying

Спасибо

1 Ответ

1 голос
/ 20 февраля 2020

Здесь возможен подход

VStack {
    Text ("\(Brutto.isNaN ? 0 : Brutto, specifier: "%.1f")")
}
...