programacion - ¿Cómo cambiar el valor de NSString mientras se depura en XCode?
partes de xcode (4)
Cuando me detengo en un punto de interrupción en XCode, puedo ver el valor de las variables NSString. ¿Cómo puedo cambiarlos? Puedo cambiar variables int o dobles, pero no NSString.
( ) el comentario de n8tr de arriba muestra cómo hacerlo. Simplemente preceda su asignación con "po" así: po myString = @ "my_new_string" y po self.title = @ "New Title".
Para NSError estoy usando esto:
(lldb) expression aTempError = (NSError*)[[NSError alloc] initWithDomain:@"MANO" code:1 userInfo:nil]
Puede pero debe llamar al código desde el símbolo del sistema del depurador. Por ejemplo, digamos que tienes un disparo de punto de interrupción justo después de esta línea:
NSString *myString = @"My current string";
Luego en el tipo de solicitud (gdb):
call myString = @"My new string"
Puede activar po myString
antes de cambiar la cadena y después de cambiarla para verificar que ha cambiado.
Otro ejemplo: supongamos que desea cambiar el título de un controlador de vista. Puedes usar el setter. * Nota: la notación de puntos no se admite en la línea de comandos del depurador. Por ejemplo, permita que la vista se cargue y luego establezca un punto de interrupción en algún lugar durante la vida útil de su controlador de vista. Entonces haz 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.
Puedes hacer esto en la consola de depuración. Digamos que tienes NSString* myVar
. En la consola, después de (gdb)
, escriba set myVar = @"My new string"
. Si está utilizando (lldb)
, use la expresión equivalente expr myVar = @"My new string"
lugar.
Es posible que esto no se muestre correctamente en el panel de variables, pero puede verificar el valor ingresando po myVar
en la consola. Su código debe recoger el nuevo valor.
Para obtener información sobre el uso de expr
, consulte esta publicación de .