Puede establecer un punto de interrupción condicional en Xcode configurando el punto de interrupción normalmente, luego haga clic con la tecla Control y haga clic en él y seleccione Editar punto de interrupción (elija Ejecutar -> Mostrar -> Puntos de interrupción).
En la entrada del punto de interrupción, hay una columna Condición.
Ahora bien, hay varias cuestiones a tener en cuenta para la afección. En primer lugar, gdb no comprende la sintaxis de puntos, por lo que en lugar de myObj.name, debe usar [myObj name] (a menos que el nombre sea un ivar).
A continuación, como con la mayoría de las expresiones en gdb, debe indicarle el tipo de resultado devuelto, a saber, "BOOL". Así que establezca una condición como:
(BOOL)[[myObj name] isEqualToString:@"Bar"]
A menudo, es más fácil hacer esto en el código agregando temporalmente código como:
if ( [myObj.name isEqualToString:@"Bar"] ) {
NSLog( @"here" );
}
y luego establecer el punto de interrupción en NSLog. Entonces su condición puede ser arbitrariamente compleja sin tener que preocuparse por lo que gdb puede y no puede analizar.