Sto convertendo un'app in 64-bit. I documenti Apple affermano che il tipo CGFloat
è un float
su 32 bit e uno double
su 64 bit.Codifica/decodifica CGFloat su 32- vs 64-bit
Se è così, come gestisci la codifica/decodifica del valore? Ad esempio, se si crea uno NSNumber
da un CGFloat
, dovrei utilizzare il metodo -numberWithFloat:
o -numberWithDouble:
di NSNumber? La stessa domanda si applica ai metodi NSCoder
e NSKeyedArchiver
-encodeFloat:forKey:
e -encodeDouble:forKey:
.
Devo scrivere una macro condizionale in modo che -numberWithFloat:
venga chiamato su 32-bit e -numberWithDouble:
su 64-bit?
Cosa succede se un utente che esegue la versione a 64 bit dell'app salva un file in cui questi valori sono codificati come doppi e il file viene aperto/non archiviato su un sistema a 32 bit?
È improbabile che tutti i metodi della mia app che utilizzano CGFloats
abbiano mai bisogno del livello di precisione di double
, quindi dovrei preoccuparmi anche di questo?
Mille grazie, che chiarisce molto le cose. –