Tôi muốn bật NSLog khi tôi đang gỡ lỗi và tắt chế độ này nếu không. Một điều rất đơn giản là:Bật và tắt NSLog ở chế độ DEBUG
#ifdef DEBUG
NSLog(@"My log");
#endif
Nhưng tất cả điều này #ifdef
và #endif
là Borring ... :(Vì vậy, tôi cố gắng điều khác: (.pch là nơi tốt để đặt nó)
#ifdef DEBUG
# define NSLog(text) NSLog(text);
#else
# define NSLog(text)
#endif
này làm việc rất tốt (không đệ quy). Nhưng vấn đề là NSLog có lập luận vô hạn.
void NSLog(NSString *format, ...)
Làm thế nào tôi giải quyết này để làm việc trong chế độ tiền xử lý?
- Edit -
Mã này làm NSLog của bạn tốt hơn:
#ifdef DEBUG
#define NSLog(FORMAT, ...) fprintf(stderr,"%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
#define NSLog(...)
#endif
+1 cho Câu hỏi hay. Một thành phần tái sử dụng hoàn chỉnh về chủ đề này tại http://mobile.tutsplus.com/tutorials/iphone/customize-nslog-for-easier-debugging/ –
Tôi làm theo hướng dẫn trong liên kết. Nhưng tôi nhận được lỗi biên dịch sau: ** Biểu tượng không xác định cho kiến trúc x86_64: ld: biểu tượng không tìm thấy kiến trúc x86_64 clang: lỗi: lệnh liên kết không thành công với mã thoát 1 (sử dụng -v để xem lời gọi) ** Xin hãy giúp @MahbuburRAaman – Gon
@Gon, Lỗi ** Biểu tượng không xác định cho kiến trúc x86_64: ld: không tìm thấy (các) biểu tượng cho kiến trúc x86_64 ** vì một vài lý do. Ví dụ: đối với thư viện bị thiếu hoặc các trường hợp khác, hãy xem tài nguyên SO sau http://stackoverflow.com/questions/18408531/xcode-build-failure-undefined-symbols-for-architecture-x86-64, http: //stackoverflow.com/questions/11996227/undefined-symbols-for-architecture-x86-64-in-objective-c, http://stackoverflow.com/questions/6231368/objective-c-undefined-symbol-compilation- lỗi. –