extension Date: RawRepresentable {
public var rawValue: String {
self.timeIntervalSinceReferenceDate.description
}
public init?(rawValue: String) {
self = Date(timeIntervalSinceReferenceDate: Double(rawValue) ?? 0.0)
}
}
This one works
Thank you!
Post
Replies
Boosts
Views
Activity
Your code makes CloudKit work but stops the widget extension from connecting to the CoreData Database.
Thank you for your time.
I don't think it's working.
It still syncs the data across devices just if I close and reopen the app.
I had also tried using a timer, to call the readData function every second, but it creates several bugs in the app.
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
The ** values ** array is just a placeholder for now, it can be empty or have N elements, I just want to assign 0 to values[i] when it doesn't exists, but when I try it it crashes anyway
That is what I wanted, thank you
Can you describe how you want to use it more specifically?
I want to trim it 50% from top to bottom not from right to left, at the end I want it trimmed from the center to the top.
It is not the right description of trim(from:to:).
Ok, thanks for the correction
you may need something other than trim(from:to:).
What would you use or how would you do it?
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.
Actually this is not working:
ForEach(networkController.users, id: \.self){ user in
I thought it was right, that's why I checked it
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
Did you get some different results than this?
No
Try 0.1 + 0.2, you won't get the right result (at least for me)
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
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