आप अपने NSLog केवल काम करने के लिए जब अपने डीबग कर रहे हैं चाहते हैं और आप अपने कोड में कोई परिवर्तन का सबसे अच्छा तरीका अपने .pch फ़ाइल पर यह करने के लिए है करने के लिए नहीं करना चाहते हैं:
#ifndef DEBUG
#define NSLog(x...)
#endif
विवरण और समस्या निवारण:
इसका मतलब यह है कि अगर डीबग परिभाषित नहीं है यह "ओवरराइड" होगा सभी NSLogs कुछ भी नहीं करना, इस स्ट्रिंग की जगह पूरे कोड में ऐसा कोई NSLog संकलन से पहले जगह लेता होगा बचें, गलती से उत्पादन पर कोई एनएसएलओजी नहीं छोड़ा जाएगा, इससे उत्पादन ऐप्स पर एनएसएलॉग को हटाने की भूल में मानव त्रुटि को समाप्त कर दिया जाएगा।
डीबीयूजी सामान्य रूप से सभी एक्सकोड परियोजनाओं में डिफ़ॉल्ट रूप से डीबग मोड में परिभाषित किया जाता है।आप पता कर सकते हैं अगर यह पर परिभाषित किया गया है:
Build Settings ->
Apple LLV #.# - Preprocessing ->
Preprocessor Macros -> Debug
अगर यह वहाँ
DEBUG=1
भी जोड़ नहीं है, तो आप एक PCH फ़ाइल नहीं है या यहां तक तार नहीं है क्या आप के लिए मिला कर (क्योंकि यह स्वतः xcode 5 में जोड़ा गया लेकिन अब नई परियोजना टेम्पलेट्स पर डिफ़ॉल्ट रूप से xcode 6 में और ऊपर जोड़ा जाता है)
Why isn't ProjectName-Prefix.pch created automatically in Xcode 6?
बिल्कुल। इसके अलावा, आईओएस उपकरणों पर सिस्टम लॉग हास्यास्पद रूप से अल्पकालिक है, इसलिए वास्तविक जीवन में यह सिर्फ बेकार है। आईओएस में 'एनएसएलओजी() 'सिर्फ एक _local_ डीबग उपकरण है। – Costique