Tôi ghi đè lên đối tượng -(NSString*)description
tuy nhiên Xcode luôn hiển thị error: summary string parsing error
trong trường tóm tắt trong chế độ xem biến.Mô tả NSObject và tóm tắt tùy chỉnh trong Xcode
thực hiện hiện tại của tôi là như sau:
- (NSString*)description {
return [NSString stringWithFormat:@"<%@ %p> x=%f, y=%f", self.class, self, _x, _y];
}
Nếu tôi gõ po objectName
trong giao diện điều khiển, LLĐB cho thấy một kết quả tốt đẹp như mong đợi, tuy nhiên Xcode và lệnh p objectName
luôn chỉ ra lỗi, vì vậy định dạng debug mô tả thích hợp để là những gì làm cho trường tóm tắt hoạt động? Đáng chú ý là đầu ra của lệnh "p" giống như một thông báo tóm tắt mà bạn thấy trong Xcode cho các thể hiện của các lớp Foundation.
Cập nhật:
Theo như tôi có thể nhìn thấy từ "WWDC 2012 phiên Debugging trong Xcode", tóm tắt tùy chỉnh có thể được thực hiện chỉ sử dụng kịch bản Tuỳ chỉnh python. Các phương thức -(NSString*)description
hoặc -(NSString*)debugDescription
không được kết nối với các tin nhắn tóm tắt. Tôi nghĩ rằng họ là vì tôi đã có một lỗi hiển thị, nhưng có vẻ như đó là một thông điệp tiêu chuẩn cho các lớp học mà không có trình định dạng riêng của họ.
Bạn nói "ghi đè" - đây có phải là phân lớp hoặc danh mục không? Và siêu lớp là gì? –
Và tôi không yêu cầu bạn nói "p objectName" trong Xcode. Trong trình gỡ rối Xcode, tôi đã luôn làm 'po' cho một đối tượng. 'p' là dành cho vô hướng. –
Một điều cần lưu ý là Hot picks, là "p objectName" sẽ làm việc cho hầu hết các đối tượng Foundation chuẩn (NSStrings, NSArrays, v.v.) bởi vì lldb có các trình định dạng dựng sẵn để biết cách định dạng đối tượng mà không cần chạy mã trong chương trình của bạn. Như Andy lưu ý trong bản cập nhật của mình, bạn cũng có thể viết các trình định dạng tùy chỉnh của riêng bạn cho đối tượng của riêng bạn bằng Python - nó khá dễ dàng một khi bạn nhận được nó. –