Możesz ustawić warunkowy punkt przerwania w Xcode, ustawiając go normalnie, a następnie kliknij go z wciśniętym klawiszem Control i wybierz Edytuj punkt przerwania (wybierz Uruchom -> Pokaż -> Punkty przerwania).
We wpisie punktu przerwania znajduje się kolumna Warunek.
W przypadku tego stanu należy pamiętać o kilku kwestiach. Po pierwsze, gdb nie rozumie składni kropek, więc zamiast myObj.name, musisz użyć [myObj name] (chyba że nazwa jest ivar).
Następnie, tak jak w przypadku większości wyrażeń w gdb, musisz podać typ zwracanego wyniku, a mianowicie „BOOL”. Ustaw więc warunek taki jak:
(BOOL)[[myObj name] isEqualToString:@"Bar"]
Często łatwiej jest po prostu zrobić to w kodzie, tymczasowo dodając kod taki jak:
if ( [myObj.name isEqualToString:@"Bar"] ) {
NSLog( @"here" );
}
a następnie ustawianie punktu przerwania w dzienniku NSLog. Wtedy twój stan może być dowolnie złożony, bez martwienia się o to, co gdb może, a czego nie może przeanalizować.