Post

Replies

Boosts

Views

Activity

Reply to Index out of range, SwiftUI
The problem is not the onTapGesture (the onTapGesture is also a placeholder), the problem is that valori has fewer elements than valoriAsseX, I want that if valori[I] doesn't exist it becomes 0. Don't look at the onTapGesture, it's not a problem
Jun ’21
Reply to Errors in ForEach SwiftUI
Text( "\(networkController.users.main ?? Main(temp: 0).temp)") Gives some errors: Cannot convert value of type 'Float' to expected argument type 'Main' Instance method 'appendInterpolation' requires that 'Main' conform to '_FormatSpecifiable' But yes, (this: Text( "\(networkController.users.main ?? Main(temp: 0).temp)")), this is what I want to do.
Apr ’21
Reply to Problems with ForEach, SwiftUI
Errors: Cannot infer key path type from context; consider explicitly specifying a root type Insert '#Root#' Extra arguments at positions #2, #3 in call Generic parameter 'Content' could not be inferred Explicitly specify the generic arguments to fix this issue Missing argument for parameter 'content' in call Insert ', content: #(Int) - _#' Value of type '[UserItalia]' has no member 'weather
Apr ’21
Reply to Comma not working
So, when I press the decimal point button it should add a decimal point, what happens is that when I press the decimal point it doesn't consider the numbers that I write after the decimal point. Sorry for my inaccuracy, I'm still learning and thank you very much
Mar ’21
Reply to Append to Double
Sorry, I didn't make myself clear I made a calculator and when I tap the numbers, they don't append to each other, how do I solve it This is what I am doing: // // ContentView.swift // Calcolatrice // // Created by Jad Taljabini on 26/03/21. // import SwiftUI import Combine enum Nums: String{ case uno = "1" case due = "2" case tre = "3" case quattro = "4" case cinque = "5" case sei = "6" case sette = "7" case otto = "8" case nove = "9" case zero = "0" case moltiplicazione = "X" case divisione = "/" case somma = "+" case meno = "-" case uguale = "=" case AC = "AC" case piùMeno = "±" case percentuale = "%" case virgola = "." case niente = "" } struct ContentView: View { var numeri: [[Nums]] = [ [Nums.AC, Nums.piùMeno, Nums.percentuale, Nums.divisione], [Nums.sette, Nums.otto, Nums.nove, Nums.moltiplicazione], [Nums.quattro, Nums.cinque, Nums.sei, Nums.meno], [Nums.uno, Nums.due, Nums.tre, Nums.somma], [Nums.zero, Nums.niente, Nums.virgola, Nums.uguale] ] private var gridItemLayout = [GridItem(.flexible()), GridItem(.flexible()), GridItem(.flexible()), GridItem(.flexible())] @State var res: Double = 0 @State var previousVar: Double = 0 let timer = Timer.publish(every: 0.001, on: .main, in: .common).autoconnect() @State var con: Int = 0 @State var final: Double = 0 @State var operat = Nums(rawValue: "") var body: some View { VStack{ Spacer() HStack{ Spacer() Text("\(res, specifier: "%.2f")") .font(.system(size: 50)) .bold() .padding() } Spacer() LazyVGrid(columns: gridItemLayout, content: { ForEach(0..5){ i in ForEach(0..4){ j in RoundedRectangle(cornerRadius: 35.0) .foregroundColor(.orange) .frame(width: 80, height: 80, alignment: .center) .overlay( Text("\(numeri[i][j].rawValue)") .font(.largeTitle) .foregroundColor(.black) ).onTapGesture { switch numeri[i][j] { case Nums.AC: operat = Nums.AC; res = 0 case Nums.uguale: operat = Nums.uguale; res = final case Nums.somma: operat = Nums.somma; previousVar = res; res = 0; con = 0 case Nums.meno: operat = Nums.meno; previousVar = res; res = 0 con = 0 case Nums.divisione: operat = Nums.divisione; previousVar = res; res = 0; con = 0 case Nums.moltiplicazione: operat = Nums.moltiplicazione; previousVar = res; res = 0; con = 0 case Nums.percentuale: operat = Nums.percentuale; res = res / 100 case Nums.piùMeno: operat = Nums.piùMeno; res = res * -1; con = 0 case Nums.virgola: operat = Nums.virgola; res = Double(String(res) + ".") ?? 0 default: res = Double(numeri[i][j].rawValue) ?? 0 con += 1 } } } } }).onReceive(timer) { _ in if con != 0 { if operat == Nums.divisione{ final = previousVar / res } else if operat == Nums.meno{ final = previousVar - res } else if operat == Nums.moltiplicazione{ final = previousVar * res } else if operat == Nums.somma{ final = previousVar + res } } } }.padding(2) } } At line 115 I am making res equal a number, what I want to do is to append that number to res Thank you
Mar ’21