Thời gian chạy của Objective-C có vẻ khá mạnh mẽ, vì vậy tôi đã tự hỏi liệu có cách nào để ghi tên hàm được gọi là hàm hiện tại (cho mục đích gỡ lỗi) hay không.In tên hàm gọi tới nhật ký gỡ lỗi
Tình huống của tôi là một loạt các thứ được gán cho một thuộc tính và thay vì đặt điểm ngắt và kiểm tra ngăn xếp cuộc gọi mỗi lần, tôi chỉ muốn NSLog
tên của chức năng đang đặt thuộc tính, cùng với giá trị mới.
Vì vậy, bạn có thể truy cập vào ngăn xếp cuộc gọi khi chạy?
Điều này làm việc tuyệt vời nếu bạn thay thế 'sizeof (addr)' bằng 'sizeof (addr)/sizeof (void *)' (hoặc chỉ 2). Cảm ơn! – Brian
Đã sửa lỗi. Oh, và Foundation thực sự phơi bày điều này thực sự đơn giản thông qua '- [NSThread callStackSymbols]', nó trả về một mảng. Bạn có thể sử dụng nó như là 'NSArray * syms = [[NSThread currentThread] callStackSymbols]; if ([syms count]> 1) NSLog (@ "người gọi:% @", [syms objectAtIndex: 1U]; ' –
bình luận cuối cùng:' callStackSymbols' là một phương thức lớp. Bạn phải sử dụng nó như '[NSThread callStackSymbols]' – user102008