วิธีทำให้ NSLog ไม่แสดง Output

ขอแนะนำ Tip ง่ายๆ ซึ่งผมคิดว่าหลายๆคนที่เคยพัฒนา iOS Application มาแล้วน่าจะรำคาญมากๆ ถ้าหากเราใช้ NSLog เยอะๆ แล้วต้องมานั่งลบทีละตัว และอีกอย่างหนึ่งนะครับตอนที่ Publish Application ขึ้น Apple Store ไม่ควรจะใส่ NSLog ไว้เลยเพราะจะทำให้ Application ของเราช้าลงไปเยอะเลยครับ โดยที่วิธีการนี้ผมจะตั้ง Target ไว้ว่าถ้าหาก Target เป็น Debug Mode ก็จะให้แสดงผลใน NSLog ออกมาแต่ถ้า Target เป็น Release Mode เราก็จะไม่แสดงผลใน NSLog ครับ มาดูขั้นตอนกันเลย

1. พิมพ์คำสั่งต่อไปนี้ลงไปในไฟล์ Blah-Prefix.pch (Blah คือ Project Name ครับ)

#ifdef DEBUG
# define AKLog(fmt,…) NSLog(@”%@”,[NSString stringWithFormat:(fmt), ##__VA_ARGS__]);
#else
# define AKLog(…)
#endif

2. เสร็จเรียบร้อยแล้วนะครับ (Xcode4) ถ้าเป็น Version ที่ต่ำกว่านี้ต้องไปตั้งค่า DEBUG ใน Preprocessor Macros ก่อนนะครับถึงจะใช้ได้

คราวนี้ก็มาถึงขึ้นตอนการใช้งาน ก็ไม่มีอะไรมากครับจากที่เมื่อก่อนเวลาเราจะจะพิมพ์อะไรออกมาทาง Output เราก็จะใช้ NSLog ก็ให้เปลี่ยนไปใช้ AKLog (ชื่อตามที่เราตั้งไว้ใน Blah-Prefix.pch) แทน คราวนี้เราก็จะสามารถกำหนดที่ Target ได้เลยว่าจะให้พิมพ์ข้อมูลออกมาถ้า Target เป็น Debug แต่ถ้าเป็น Release ก็ไม่ต้องพิมพ์อะไรออกมา

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s