2012-01-31 29 views
18

cho ứng dụng của tôi Tôi muốn có một chế độ xem gỡ lỗi mà tôi muốn chỉ có trong các bản dựng gỡ lỗi chứ không phải trong các bản xây dựng bản phát hành . Tôi không muốn thay đổi mã của tôi mặc dù. Đó là lý do tại sao tôi tự hỏi nếu tôi có thể kiểm tra một số cờ biên dịch nếu đây là một bản phát hành xây dựng và loại trừ một số mã mà tôi chỉ muốn có để gỡ lỗi xây dựng.iOS: các đoạn mã tùy chọn để gỡ lỗi xây dựng

Trả lời

30

Trong các dự án của bạn xây dựng cài đặt, tìm kiếm Preprocessor phần định nghĩa, trong đó bạn có thể định nghĩa một biến trong debug chỉ xây dựng của bạn, chẳng hạn như DEBUG=1, và sau đó sử dụng điều này trong mã của bạn:

#if DEBUG 
    NSLog(@"This will only print in debug!"); 
#endif 

Just đảm bảo trong cấu hình phát hành của bạn, cùng một xác định được đặt thành 0 ở cùng một vị trí trong cài đặt bản dựng của bạn

+0

typo đó: sử dụng #ifdef – Tomen

+1

#ifdef là một tùy chọn, nhưng tôi thích sử dụng # nếu thay –

+2

Như tôi đã nói ở bình luận của tôi trước đây, tôi thích sử dụng '# if' hơn là' # ifdef'. Nó hoàn toàn phụ thuộc vào lập trình viên để sử dụng, và mỗi lập trình đều có những ưu điểm và nhược điểm của nó. Tùy chọn của tôi là sử dụng phương thức mà mỗi cờ luôn được xác định, nhưng dưới dạng 0 hoặc 1 để chỉ ra trạng thái của cờ đó, thay vì cố gắng tìm hiểu xem cờ đó có được xác định trong dự án –

26

Kiểm tra cài đặt dự án của bạn để gỡ lỗi để đảm bảo rằng 'DEBUG' đang được đặt - Apple cung cấp cho bạn miễn phí - làm điều này bằng cách chọn dự án và nhấp vào tab cài đặt xây dựng. Tìm kiếm 'DEBUG' và tìm xem liệu thực sự DEBUG có được đặt hay không.

Build Settings tab of my project settings

sau đó có điều kiện mã cho DEBUG trong các tập tin nguồn của bạn

#ifdef DEBUG 

// Something to log your data here or even add a whole subview to see it on the device 

#else 

// 

#endif 
+1

nhưng nếu bạn gửi ứng dụng lên táo và bạn quên đặt thành DEBUG = 0 – meda

Các vấn đề liên quan