Cuando estoy detenido en un punto de interrupción en XCode, puedo ver el valor de las variables NSString. ¿Cómo puedo cambiarlos? Puedo cambiar las variables int o double, pero no NSString.cómo cambiar el valor NSString durante la depuración en XCode?
Respuesta
Puede hacerlo en la consola de depuración. Digamos que tiene NSString* myVar
. En la consola, después de (gdb)
, escriba set myVar = @"My new string"
. Si está utilizando (lldb)
, utilice la expresión equivalente expr myVar = @"My new string"
en su lugar.
Esto puede no aparecer correctamente en el panel de variables, pero puede verificar el valor ingresando po myVar
en la consola. Tu código debería recoger el nuevo valor.
Para una gran información sobre el uso de expr
, echa un vistazo a this StackOverflow post.
Esto no funciona para mí en XCode 4.3.1 usando (lldb). Recibo errores sobre "la referencia a 'id' es ambigua" y "1 error al analizar la expresión". – funroll
Estás accediendo a una variación de un error conocido en XCode 4.3.x. Ver [esta publicación] (http://stackoverflow.com/questions/9515630/lldb-fails-to-print-variable-values-with-error-reference-to-id-is-ambiguous). Según la respuesta, esto se resuelve en XCode 4.4 – MikeG
Utilizando expr whateverVariable = @ "55fc633a22570e2b7e00003b" funcionó para mí. – finneycanhelp
Puede, pero usted tiene que llamar al código desde el símbolo del sistema depurador. Por ejemplo, supongamos que tiene un fuego punto de interrupción de la derecha después de esta línea:
NSString *myString = @"My current string";
Luego, al (BGF), escriba:
call myString = @"My new string"
Usted puede po myString
antes de cambiar la cuerda y después de cambiar para verificar que ha cambiado.
Otro ejemplo: Digamos que quería cambiar el título de un controlador de vista. Puedes usar el colocador. * Nota: la notación de puntos no es compatible con la línea de comandos del depurador. Por ejemplo, permita que la vista cargue y luego establezca un punto de interrupción en algún lugar durante la vida útil de su controlador de vista. Luego haga esto:
call (id)[self setTitle:@"New Title"]
Continúe ejecutando el programa y debería ver la actualización del título de su controlador de vista.
mi respuesta es vieja. En realidad, puede hacer esto ahora: ** po myString = @ "my_new_string" ** y ** po self.title = @ "New Title" ** – n8tr
Para NSError estoy usando esto:
(lldb) expression aTempError = (NSError*)[[NSError alloc] initWithDomain:@"MANO" code:1 userInfo:nil]
(https://stackoverflow.com/users/1202867/n8tr) El comentario de n8tr desde arriba muestra cómo hacerlo. Simplemente precede su tarea con "po" como: po myString = @ "my_new_string" y po self.title = @ "New Title".
Esto funciona en Xcode 6.3.2. – Huperniketes
- 1. Xcode evaluando expresiones durante la depuración
- 2. Cómo ver el texto en un NSString en la depuración
- 3. ¿Cómo cambiar el valor de las variables mientras se depura con LLVM en Xcode?
- 4. Cómo detener el temporizador durante la depuración
- 5. Xcode: ¿Debería eliminar los símbolos de depuración durante la copia?
- 6. Xcode 4: ¿Cómo cambiar el valor de la variable $ {EXECUTABLE_NAME}?
- 7. eclipse - valor de búsqueda de la variable durante la depuración
- 8. ¿Cómo manejo una ClassNotLoadedException durante la depuración?
- 9. Viendo variables en SSIS durante la depuración
- 10. Modificar variables estáticas durante la depuración en Eclipse
- 11. Depuración EXC_BAD_ACCESS desde un NSString
- 12. Edición C# durante la depuración
- 13. Debug.WriteLine omitido durante la depuración
- 14. Depuración de la Excepción en XCode 4
- 15. Durante la depuración en Eclipse, ¿es posible saltar a una línea y ejecutarla durante la depuración?
- 16. Convertir el valor de flotación en NSString
- 17. Depuración en XCode como root
- 18. Ventana de vigilancia para la depuración de XCode
- 19. Cómo cambiar la codificación durante el análisis CSV en Rails
- 20. ¿Puede el IP cambiar durante la sesión?
- 21. Cambiar el enlace `Proc` durante la invocación
- 22. iOS: La depuración no trabaja en XCode
- 23. Cómo omitir una instrucción en Eclipse durante la depuración
- 24. Cómo usar Console.WriteLine en ASP.NET (C#) durante la depuración?
- 25. En Delphi: cómo omitir secciones de código durante la depuración?
- 26. Cómo cambiar el color de NSString en drawAtPoint
- 27. ¿Cómo llamo a la lista de Python durante la depuración?
- 28. Xcode iOS: Convertir int en NSString
- 29. IntelliJ - detener un hilo durante la depuración
- 30. Inspeccionar en la memoria hsqldb durante la depuración
en 1987 podríamos usar fácilmente el equivalente de "Editar valor ..." de Xcode en todos los depuradores * reales *. Ahora estamos relegados a escribir el código del depurador ... De vuelta al futuro ... –