คุณสามารถตั้งค่าจุดพักตามเงื่อนไขใน Xcode ได้โดยการตั้งค่าเบรกพอยต์ตามปกติจากนั้นกด Control แล้วคลิกและเลือกแก้ไขเบรกพอยต์ (เลือกรัน -> แสดง -> เบรกพอยต์)
ในรายการเบรกพอยต์มีคอลัมน์เงื่อนไข
ตอนนี้มีหลายประเด็นที่ต้องคำนึงถึงสภาพ ประการแรก gdb ไม่เข้าใจไวยากรณ์ dot ดังนั้นแทนที่จะใช้ myObj.name คุณต้องใช้ [myObj name] (เว้นแต่ชื่อจะเป็น ivar)
ถัดไปเช่นเดียวกับนิพจน์ส่วนใหญ่ใน gdb คุณต้องระบุประเภทของผลลัพธ์ที่ส่งคืนคือ "BOOL" ดังนั้นตั้งเงื่อนไขเช่น:
(BOOL)[[myObj name] isEqualToString:@"Bar"]
บ่อยครั้งที่มันง่ายกว่าที่จะทำในโค้ดโดยการเพิ่มโค้ดชั่วคราวเช่น:
if ( [myObj.name isEqualToString:@"Bar"] ) {
NSLog( @"here" );
}
จากนั้นตั้งค่าจุดพักบน NSLog จากนั้นเงื่อนไขของคุณอาจซับซ้อนโดยพลการโดยไม่ต้องกังวลว่า gdb สามารถและแยกวิเคราะห์ไม่ได้