Sono un principiante con iPhone dev in Objective C e una cosa che trovo sto facendo un bel po 'è sempre galleggianti (e int) dentro e fuori di vari NSArraysEsiste un modo per ottenere una virgola mobile da un array?
float myFloatValue = [(NSNumber *)[myArray objectAtIndex:integerSelector] floatValue];
ho capito che ho bisogno per fare questo boxing perché un float (o int) non è un puntatore e NSArray accetta solo puntatori.
Mi stavo chiedendo se c'è un po 'di zucchero sintattico per accorciare questa linea di codice - principalmente perché quando ho un paio di array e li sto eseguendo su di loro per fare un po' di elaborazione, trovo che le linee iniziano diventando massiccio e devo rompere le linee che estraggono il numero dalla matrice solo per rendere leggibile il codice - quindi ho molte linee di gomma che tendono a rendere la logica più difficile da seguire.
in un linguaggio come C# vorrei scrivere qualcosa di simile
float myResult = myArray[i] + someOtherArray[i+1];
(ok - che è probabilmente una linea abbastanza stupida di codice - ma sintatticamente è abbastanza pulito, credo perché .net sta facendo la boxe implicitamente in cui non riesco a vedere)
in CI obiettivo trovo a scrivere:
float myFloatValue = [(NSNumber *)[myArray objectAtIndex:i] floatValue];
float myOtherFloatValue = [(NSNumber *)[someOtherArray objectAtIndex:i+1] floatValue];
float myResult = myFloatValue + myOtherFloatValue;
mi chiedo solo se mi manca un trucco qui digitando tutto fuori longhand. Dovrei usare un'alternativa a NSArray? C'è una scorciatoia per il pugilato/unboxing?
o credo, devo solo farci l'abitudine e smettere di lamentele;)
No, Objective-C fa schifo. Ma puoi usare un array C se stai semplicemente memorizzando i float. Il problema con i C array è l'allocazione dinamica della memoria. – vakio
Beh, per lo meno, perché stai lanciando? Questo non è C++. Puoi inviare qualunque messaggio tu voglia ad un oggetto 'id'. – StilesCrisis