Ho una domanda sul modo sicuro o correttamente la conversione di un NSString
in tipi come CGFloat
e NSInteger
, considerando che questi sono semplicemente tipi di wrapper che Apple ha creato per utilizzare diverse primitive a seconda di alcuni fattori (ad esempio, NSInteger
è typedef
'a int
su architetture a 32 bit e long
su architetture a 64 bit).correttamente Conversione NSString a CGFloat, NSInteger, ecc
Per esempio, so che posso usare qualcosa come [ someString intValue ]
o [ someString longValue ]
, ma come faccio a dire che invece voglio someString
diventare un NSInteger
, permettendo la precisione del primitivo sottostante di essere scelto dal compilatore? Dire qualcosa come NSInteger integer = [ someString intValue ]
comporterebbe la perdita di dati se someString
è stato creato da un NSInteger
su un sistema a 64 bit, giusto? Qual è il modo migliore per affrontare questa situazione?
Ah, grazie. Non ho nemmeno notato 'integerValue'. – LucasTizma
Ecco perché dovresti leggere le note di rilascio ogni volta che esce una versione principale del sistema operativo. Ci sono sempre alcune aggiunte utili alle lezioni che abbiamo conosciuto e amato per molti anni. – NSResponder
E per la conversione in CGFloat? – Casebash