recibo este error, ¿alguien lo sabe? 2009-07-08 18: 42: 36.778 FlashCards [1297: 20b] Categoría ID = 1 FlashCards (1297,0xa0690fa0) malloc: * Error para 0x4fd78a0 objeto: puntero de ser liberado no se asignaron FlashCards (1297,0xa0690fa0) malloc: * de error para el objeto 0x4fdc200: doble liberación *** establecer un punto de interrupción en malloc_error_break depurar¿es necesario liberar un NSInteger en iphone?
Respuesta
no, un NSInteger
no es un objeto; es simplemente una typedef para una int
(para aplicaciones de 32 bits) o un long
(para aplicaciones de 64 bits):
#if __LP64__
typedef long NSInteger;
#else
typedef int NSInteger;
endif
NSInteger es un typedef para un tipo primitivo, no es un objeto que puede responder a métodos como retener o liberar. Aunque se denomina de manera similar a clases Cocoa como NSNumber o NSValue, en realidad se trata igual que int, float, etc.
cuénteme sobre el error ¿cómo puedo encontrar qué objeto está dando error? –
El mensaje de error le da una buena pista sobre cómo solucionar este problema: establezca un punto de interrupción en malloc_error_break. En Xcode, abra la ventana de puntos de interrupción (opción-cmd-B). En el campo que dice "Hacer doble clic para el símbolo", ingrese malloc_error_break
. Vuelva a ejecutar su aplicación en el depurador (seleccione Depurar en el menú Ejecutar). El depurador se detendrá en el punto del error que informó. Yo examinaría la traza de la pila en ese punto para encontrar dónde has liberado doblemente este recuerdo.
establece un punto de interrupción en malloc_error_break. En Xcode, abra la ventana de puntos de interrupción (opción-cmd-B). En el campo que dice "Hacer doble clic para el símbolo", ingrese malloc_error_break. Vuelva a ejecutar su aplicación en el depurador (seleccione Depurar en el menú Ejecutar). Por favor, explíquelo con más detalle. donde puedo establecer un punto de interrupción en malloc_error_break. –
En Xcode, seleccione Ejecutar-> Mostrar-> Puntos de interrupción (en el menú Ejecutar) o presione simultáneamente la opción, los botones cmd y B. En el panel Puntos de interrupción que aparece, haga doble clic en el cuadro que dice "Hacer doble clic para el símbolo" y escriba "malloc_error_break" (sin comillas). –
cuál es la ubicación del punto de interrupción "malloc_error_break" –
- 1. cuándo liberar un iPhone NSString en
- 2. Asignar propiedad NSInteger en la aplicación iPhone
- 3. ¿Es posible enviar un NSInteger a NSNumber?
- 4. Comprobar si un objeto es NSInteger
- 5. ¿Es necesario liberar el ivar y establecer el ivar sintetizado en cero al mismo tiempo?
- 6. ¿Es necesario devolver un valor en Main()?
- 7. ¿Es necesario un sondeo constante en RXTX?
- 8. ¿Es necesario un bloqueo en esta situación?
- 9. ¿Por qué hay un NSInteger?
- 10. ¿Es necesario liberar la memoria de las propiedades de Objective-c 2.0?
- 11. tipos NSInteger
- 12. ¿Por qué no declaro NSInteger con un *
- 13. Comprobando si un NSInteger es impar o incluso
- 14. Cómo convertir un NSInteger a un int?
- 15. ¿Es realmente necesario CDATA?
- 16. jquery - ¿Es $ (documento) necesario?
- 17. ¿Es una buena práctica liberar un puntero NULL en C?
- 18. ¿Es necesario volátil aquí?
- 19. ¿Es necesario KillTimer?
- 20. Java: ¿Es necesario sincronizar un ExecutorService?
- 21. GLES2 ¿Es glBindAttribLocation() necesario?
- 22. ¿Por qué es necesario un segundo cin.ignore()?
- 23. ¿Cuándo es necesario deshacerse?
- 24. string.c_str() ¿es necesario desasignar?
- 25. ¿Es realmente necesario KillTimer?
- 26. ¿Es necesario AssemblyInfo.cpp?
- 27. ¿Cómo puedo convertir un NSInteger a NSTimeInterval
- 28. Cómo liberar un bloque
- 29. Comparar NSNumber con NSInteger
- 30. Convertir NSInteger a NSIndexpath
dime acerca del error ¿Cómo puedo encontrar el objeto que está dando el error? –
Parece que estás llamando a la versión de un NSInteger que no puedes hacer, porque no es un objeto. –