Có thể khi chạy để phát hiện xem ứng dụng đang chạy được biên dịch với gỡ lỗi hay phân phối.Phát hiện nếu iPhone đang chạy bản dựng Gỡ lỗi/Phân phối khi chạy
Trả lời
Trong Thông tin dự án, cho cấu hình Gỡ lỗi, hãy thêm Macro tiền xử lý "DEBUG" (trong GCC 4.2 - phần Tiền xử lý).
Trong mã của bạn, bạn có thể sử dụng #ifdef để xem nếu DEBUG được xác định nếu bạn muốn có một số mã được bao gồm hay không cho các bản dựng gỡ lỗi. Hoặc thậm chí bạn có thể thiết lập một biến (Tôi không thể tưởng tượng được tại sao bạn muốn điều này):
#ifdef DEBUG
BOOL isBuiltDebug = YES;
#else
BOOL isBuiltDebug = NO;
#endif
EDIT: Vâng, một cách khác là xác định một giá trị boolean trong một Preprocessor Macro, ví dụ: "DEBUG_BUILD = 1 "cho cấu hình Gỡ lỗi và" DEBUG_BUILD = 0 "cho cấu hình Phát hành. Sau đó, bạn có thể sử dụng giá trị đó trong mã của mình:
if (DEBUG_BUILD) {
....
}
Hãy cẩn thận không sử dụng tên macro có thể khớp với tên đã có trong mã của bạn hoặc trong bất kỳ tệp .h mà bạn có thể bao gồm bộ tiền xử lý sẽ thay thế nó và đó là một nỗi đau thực sự để tìm ra những loại lỗi đó.
Mã sẽ là một phần của quận thứ 3 và nếu có thể, hãy tránh #ifdef, nhưng có thể sống với nó nếu không có giải pháp nào khác. – lolsborn
Tôi không biết cách nào khác ngoài việc sử dụng macro tiền xử lý, nhưng bạn có thể tránh #ifdef, xem chỉnh sửa của tôi ở trên. – progrmr
Cảm ơn bạn đã trả lời! –
Mà không cần phải suy nghĩ về việc xác định một macro tùy chỉnh tiền xử lý, bạn chỉ có thể viết một phương pháp tùy chỉnh như thế này:
+ (BOOL) isInDebugMode
{
#ifndef __OPTIMIZE__ // Debug Mode
return YES;
#else
return NO;
#endif
}
Hoặc chỉ cần viết mã của bạn inline trong các báo cáo:
#ifndef __OPTIMIZE__ // Debug Mode
// Your debug mode code
#else
// Your release mode code
#endif
Cài đặt tiền xử lý __OPTIMIZE__
tự động được thiết lập bởi trình biên dịch liên quan đến cài đặt dự án của bạn, vì vậy bạn không phải lo lắng về nó.
- 1. Phát hiện nếu qt đang chạy bản dựng gỡ lỗi tại thời gian chạy
- 2. iPhone: Cách phát hiện nếu iTunes đang phát?
- 3. Cách phát hiện nếu chạy trên localhost
- 4. iPhone - Làm thế nào tôi có thể phát hiện thiết bị đang chạy một bản dựng adhoc của ứng dụng của tôi tại thời gian chạy
- 5. Tải phiên bản .NET CLR hiện tại khi đang chạy?
- 6. Phát hiện số quá trình đang chạy với cùng tên
- 7. Làm thế nào để phát hiện nếu tôi đang chạy trong bảng điều khiển
- 8. Phát hiện khi một tập lệnh python đang được chạy tương tác trong ipython
- 9. Cách chính xác để phát hiện nếu ruby đang chạy trên Windows là gì?
- 10. Làm thế nào để phát hiện nếu Vim đang chạy ở chế độ hạn chế?
- 11. Phát hiện nếu chạy thùng chứa servlet là Eclipse Jetty
- 12. PyQt - cách phát hiện và đóng giao diện người dùng nếu nó đang chạy?
- 13. Shell script: Đảm bảo rằng kịch bản không được thực hiện nếu đang chạy
- 14. Giữ cho iphone hoạt động khi đang chạy chương trình
- 15. Chạy ứng dụng IPhone khi đang ở chế độ ngủ
- 16. Làm thế nào để phát hiện nếu tôi đang chạy trong dịch vụ đơn?
- 17. Làm thế nào để phát hiện nếu iphone được đồng bộ hóa khi ứng dụng không chạy
- 18. Gỡ lỗi quy trình python đang chạy
- 19. Phát hiện nếu hiện đang cuộn trang web trên Android
- 20. Jenkins "chỉ chạy nếu xây dựng thành công" vẫn chạy để xây dựng không thành công
- 21. Đang tải XAML khi đang chạy?
- 22. Điều gì khác khi xây dựng Debug được chạy với gỡ lỗi và không gỡ lỗi?
- 23. OCMock Không hoạt động khi đang chạy
- 24. Nếu Notepad.exe đang chạy thì taskkill nếu không chạy đến câu lệnh tiếp theo
- 25. iPhone - Làm cách nào để phát hiện phiên bản iPhone?
- 26. Kiểm tra lập trình nếu syncdb đang chạy
- 27. Phân phối phiên bản phát triển của ứng dụng iPhone
- 28. Kiểm tra Nếu hoạt ảnh đang chạy trong cocos2d-x
- 29. Ứng dụng Direct3D chạy tốt nếu Windows Explorer đang chạy, chậm lại một cách khủng khiếp nếu không
- 30. Phát hiện khi destructor chạy do ngoại lệ bị ném?
Tại sao bạn muốn thực hiện việc này? – progrmr