প্রাক প্রসেসর ম্যাক্রোগুলি ডিবাগিংয়ের জন্য প্রকৃতপক্ষে দুর্দান্ত। এনএসএলগ () এর সাথে কোনও ভুল নেই, তবে আরও ভাল কার্যকারিতা সহ আপনার নিজের লগিং ফাংশনটি সংজ্ঞায়িত করা সহজ। এখানে আমি ব্যবহার করি তা এখানে লগ স্টেটমেন্টগুলি ট্র্যাক ডাউন করা সহজ করার জন্য এতে ফাইলের নাম এবং লাইন নম্বর অন্তর্ভুক্ত রয়েছে।
#define DEBUG_MODE
#ifdef DEBUG_MODE
#define DebugLog( s, ... ) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#else
#define DebugLog( s, ... )
#endif
এই সম্পূর্ণ বিবৃতিটি নিজের ফাইলের চেয়ে উপসর্গ শিরোনামে রেখে দেওয়া আমার পক্ষে আরও সহজ মনে হয়েছে। আপনি চাইলে, ডিবাগলগকে সাধারণ অবজেক্টিভ-সি অবজেক্টের সাথে ইন্টারঅ্যাক্ট করে আরও জটিল লগিং সিস্টেম তৈরি করতে পারেন। উদাহরণস্বরূপ, আপনার একটি লগিং ক্লাস থাকতে পারে যা তার নিজস্ব লগ ফাইল (বা ডাটাবেস) এ লিখতে পারে এবং এতে একটি 'অগ্রাধিকার' যুক্তি অন্তর্ভুক্ত থাকে যা রানটাইম আপনি সেট করতে পারেন, তাই আপনার রিলিজ সংস্করণে ডিবাগ বার্তাগুলি প্রদর্শিত হয় না, তবে ত্রুটি বার্তাগুলি হয় ( আপনি যদি এটি করেন তবে আপনি ডিবাগলগ (), ওয়ার্নিংলগ () ইত্যাদি তৈরি করতে পারেন।
ওহ, এবং মনে রাখবেন #define DEBUG_MODE
আপনার অ্যাপ্লিকেশনের বিভিন্ন জায়গায় আবার ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, আমার অ্যাপ্লিকেশনটিতে আমি লাইসেন্স কী চেকগুলি অক্ষম করতে এবং এটি নির্দিষ্ট তারিখের আগেই অ্যাপ্লিকেশনটি চালানোর অনুমতি দেয় run এটি আমার পক্ষে সর্বনিম্ন প্রচেষ্টা সহ একটি সীমিত, সম্পূর্ণ কার্যকরী বিটা কপি বিতরণ করতে দেয়।