Sie können einen bedingten Haltepunkt in Xcode festlegen, indem Sie den Haltepunkt normal einstellen, dann bei gedrückter Ctrl-Taste darauf klicken und Haltepunkt bearbeiten auswählen (wählen Sie Ausführen -> Anzeigen -> Haltepunkte).
Im Haltepunkteintrag befindet sich eine Bedingungsspalte.
Nun gibt es einige Probleme, die bei der Erkrankung zu beachten sind. Erstens versteht gdb die Punktsyntax nicht. Daher müssen Sie anstelle von myObj.name [myObj name] verwenden (es sei denn, name ist ein ivar).
Als nächstes müssen Sie, wie bei den meisten Ausdrücken in gdb, die Art des Rückgabeergebnisses angeben, nämlich "BOOL". Stellen Sie also eine Bedingung ein wie:
(BOOL)[[myObj name] isEqualToString:@"Bar"]
Oft ist es tatsächlich einfacher, dies einfach im Code zu tun, indem vorübergehend Code hinzugefügt wird wie:
if ( [myObj.name isEqualToString:@"Bar"] ) {
NSLog( @"here" );
}
und dann den Haltepunkt auf dem NSLog einstellen. Dann kann Ihr Zustand beliebig komplex sein, ohne sich Gedanken darüber machen zu müssen, was GDB analysieren kann und was nicht.