2011-10-04 14 views
7

que estoy tratando de hacer NSLog en un valor flotante usando:¿NSLog no funciona con float?

NSLog(@"THE LOG SCORE : %@", x); 

y también me han tratado:

NSLog(@"THE LOG SCORE : %@", [NSString stringWithFormat:@"%@", x]); 

pero no funciona! ¿Alguna idea de por qué no funcionaría? el error que consigo es EXC_BAD_ACCESS

gracias

Respuesta

36

El @% está destinado a trabajar en un objeto, un flotador no es un objeto. Para hacer una prueba de flotación:

NSLog(@"THE LOG SCORE : %f", x); 

He aquí un artículo útil

http://vormplus.be/blog/article/using-nslog-to-debug-your-iphone-application

+0

Debe confundir NSFloat con CGFloat, que se define simplemente como 'float' y no como un objeto ... ¿A menos que haya un objeto NSFloat del que no tenga conocimiento? –

+0

No hay nada como NSFloat. http://stackoverflow.com/questions/6702923/does-nsdouble-nsfloat-nsother-than-nsinteger-exist – vikingosegundo

+2

Para obtener información sobre otros especificadores, consulte la [Guía de especificación de formato de cadena de Apple] (http://developer.apple.com /library/mac/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html). – ughoavgfhw

0

EXC_BAD_ACCESS siempre significa que su están accediendo a un objeto que ya fue lanzado @ x está tratando con objects.So estar seguro. tu variable "x" es un objeto que estaba vivo.

+0

En xcode4, Editar esquema-> Argumentos-> Variables de entorno, agregar NSZombieEnabled, establecerlo en YES.U localizará el error. –