Câu trả lời đơn giản hơn nhiều so với tôi tưởng tượng. Cách dễ nhất để làm điều này là chỉ cần thêm một điểm ngắt trên khai báo thuộc tính. Trình gỡ rối sẽ phá vỡ bất cứ khi nào thuộc tính được đọc hoặc ghi.
Nếu, như tôi, bạn chỉ muốn ngắt khi thuộc tính bị thay đổi và bỏ qua tìm nạp, đặt điểm ngắt trên khai báo thuộc tính, sau đó đi vào bảng điều khiển LLDB và nhập "danh sách br" để xem danh sách tất cả breakpoint:
(lldb) br list
Current breakpoints:
1: file = '/Users/testuser/Desktop/TestFoo/Test.swift', line = 12, locations = 3, resolved = 3, hit count = 1
1.1: where = TestFoo`TestFoo.Test.x.getter : Swift.Int + 12 at Test.swift:12, address = 0x00000001084cfefc, resolved, hit count = 1
1.2: where = TestFoo`TestFoo.Test.x.setter : Swift.Int + 16 at Test.swift:12, address = 0x00000001084cff80, resolved, hit count = 0
1.3: where = TestFoo`TestFoo.Test.x.materializeForSet : Swift.Int + 16 at Test.swift:12, address = 0x00000001084d00f0, resolved, hit count = 0
Như bạn có thể thấy, có điểm ngắt chính "1" với ba điểm ngắt phụ. Vô hiệu hóa điểm ngắt phụ cho getter:
(lldb) br disable 1.1
1 breakpoints disabled.
và bạn đã hoàn tất. Trình gỡ lỗi sẽ chỉ phá vỡ khi thuộc tính đó được sửa đổi.