2010-05-03 5 views

Trả lời

7

Vâng, họ làm:

NSLog(@"%s:%d", __FILE__, __LINE__); 

Output là ví dụ:

/Path/to/file.m:42

1

tôi sẽ phải quay trở lại và tìm kiếm tại tài liệu mục tiêu C, nhưng dự đoán của tôi sẽ là "chắc chắn nhất" vì đây là cốt lõi của ngôn ngữ lập trình C và mục tiêu C là phần mở rộng của nó.

0

Lưu ý rằng bạn không thể ngầm đúc chuỗi liên tục được trả về bởi FILE thành char *.

Điều này sẽ làm nảy sinh cảnh báo trình biên dịch. "Không được chuyển đổi từ chuỗi liên tục thành 'char *'".

Trên đây nên đọc:

NSLog(@"%s:%d", (char *) __FILE__, __LINE__); 
10

Vì vậy, thậm chí dễ dàng hơn bằng mắt thường. Chỉ hiển thị tên tệp mà không có đường dẫn. Nó là thuận tiện để quan sát các thiết bị đầu cuối mà không cần gói văn bản.

Viết:

NSLog(@"Log: %s %d", (strrchr(__FILE__, '/') ?: __FILE__ - 1) + 1, __LINE__); 

Output là:

Log: file.m 340 
3

Bạn cũng có thể chỉ cần sử dụng @__FILE__