Cocoa : 3 สิ่งที่เจ๋งซะเหลือเกินสำหรับ Obj-C 2.0

สิงหาคม 28, 2008 at 6:09 pm ใส่ความเห็น

ไม่ได้มาอัพซะนาน เนื่องจากติดงานนั่นแหละ แต่จะว่าไปก็เพราะไม่มีงานเลยไ่ม่มีอะไรจะเขียนไปพักใหญ่ๆเลย(ตอนนี้มีแล้ว เยอะด้วย) ก็คิดซะว่าไปหาแรงบันดาลใจมาเขียนละกัน จากนี้ยังมีอีกงานแต่ว่าก็ยังมีอะไรให้เขียนอีกยาวๆแหละ

…เข้าเรื่องเลยดีกว่า 

ไม่ได้เขียนซะนานมากเกี่ยวกับเรื่อง Cocoa Programming ก็ไม่รู้เหมือนกันว่าคนที่เข้ามาอ่าน Blog ผมเนี่ย จะมีคนที่เป็น Developer บน เครื่อง Macintosh รึเปล่า แต่ค่อนข้างมั่นใจว่าแต่ละ entry ที่เขียนเนี่ย ไม่ค่อยมีแบบเป็นภาษาไทยแน่นอน ไม่เชื่อก็ต้องเชื่อ เพราะ Search เจอบน Google เป็นเวบแรกบ่อยมาก

…เข้าเรื่องเลยดีกว่า(จริงๆ)

เรื่องที่อยากจะเขียนวันนี้เป็นเรื่องเกี่ยวกับ Objective-C 2.0 ที่ออกมาพร้อมๆกับ Mac OSX Leopard 10.5 และ iPhone SDK (ออกมาช่วงๆนั้น ผมจำเวลาแน่นอนไม่ได้) ซึ่งสำหรับส่วนของ Objective-C 2.0 มี Feature ใหม่ๆเด่นๆเลยอยู่ 3 ตัวนั่นเอง

ตัวแรก GC (Garbage Collector) – แปรตรงตัวว่าพนักงานช่วยเก็บขยะ ช่วยจัดการตัวแปรต่างๆที่เคยถูกเรียกใช้ในโปรแกรมแล้วไม่มีการคืน Memory ให้กับระบบ ซึ่งเป็นการสิ้นเปลืองทรัพยากรนั่นเอง ซึ่งกับงานชิ้นใหม่นี้ได้ลองใช้แล้ว เวิร์คมากๆ ผมไม่ต้องนั่งจัดการ Memory เองเลย สบายขึ้นเยอะ(แต่ก็ทำให้เขียนโค้ดชุ่ยขึ้นเช่นกัน เพราะไม่ต้องมาซีเรียสเรื่องการคืน Memory อีกแล้ว)

…แต่พอใช้ไปซักพักก็เกิดปัญหา เพราะ ID3.framework ไม่รองรับการใช้งาน GC จบครับงานนี้ จัดการ Memory เองตามเคย วิธีการใช้งานไม่ยาก เข้าไปเซตในส่วนของ Project Info (คลิกขวาตรงชื่อโปรเจคของเราที่อยู่บน List ด้านบนสุด แล้วเลือก Get Info) จากนั้นเลือก Tab Build ในช่อง Search in Build พิมพ์เลยว่า “Garbage Collector” จากนั้นเลือกเป็น Supported ก็เป็นอันเรียบร้อยครับ


* สรุปแล้ว GC มีประโยชน์แน่ ถ้าไม่ใช้กับ Framework ตัวเก่าๆบางตัว หรือ Application บางตัวที่เกี่ยวกับ Graphics วัดดวงเอาแล้วกันนะครับ 

อย่างที่สอง การกำหนด Property ให้กับ Attribute อาจคิดว่าไม่จำเป็น แต่เอาจริงๆแล้วก็มีประโยชน์โขอยู่ อันที่จริงก็คือการกำหนดว่า Attribute แต่ละตัวจะจัดการข้อมูลอย่างไร(วิธีการจองพื้นที่, การ Access Attribute) การทำแบบนี้ได้ประโยชน์หลายอย่าง เช่น ช่วย generate ฟังก์ชั่นสำหรับการเข้าถึง attribute (set, get function) ช่วยเราประหยัดการเขียนโค้ดไปได้เยอะ อีกทั้งยังเป็นตัวช่วย  GC ตรวจสอบอีกด้วยว่าเป็นขยะหรือไม่ (อันน้ีไม่แน่ใจว่าเกี่ยวรึเปล่า แต่เท่าที่เจอก็เขียนว่าอย่างนั้น)

การ Access Attribute สามารถ Access ได้โดยใช้ Syntax “.” ได้ด้วย ก็ดูสะดวกดีไปอีกแบบนึง ถึงแม้ว่าตอนแรกๆผมจะใช้แล้วรู้สึกว่ามันทำให้ Syntax แบบ “[]” Obj-C มันไม่สวยเท่าไหร่ แต่ใช้ไปซักพักมันก็ง่ายแล้วก็เข้ากับ MVC ดีเหมือนกัน

อย่างที่สาม ชอบสุดๆกับ Fast Enumerator  ไม่มีอะไรมากครับ เหมือนๆกับการวน for ภายใน array ในภาษา OO แบบใหม่ๆอย่าง Ruby หรือ Python ลักษณะ Syntax ของมันก็คือ

for ( id element in myArray )
{ // do something on each element }

Syntax ดูดีขึ้นเยอะเลย ดูเป็นภาษาที่ High Level ขึ้นอีกหน่อย ชอบที่สุดก็อันนี้แหละ ทำงานกับ Array สบายขึ้นเยอะ

คราวนี้ยังไม่ขอลงลึกกับแต่ละอันนะครับ  ขอนึกคำอธิบายเคลียร์ๆกว่านี้หน่อยแล้วจะมาเขียนอีกทีดีกว่า

Entry filed under: Cocoa Programming, Computer. Tags: , .

หน้าฝนผ่านไป จังหวะชีวิตเดิมๆก็กลับมา อย่าเพิ่งบอกรัก – บีม

ใส่ความเห็น

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 /  เปลี่ยนแปลง )

Google photo

You are commenting using your Google account. Log Out /  เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


del.icio.us For iPhone dev

Post Calendar

สิงหาคม 2008
พฤ อา
« ก.ค.   ก.ย. »
 123
45678910
11121314151617
18192021222324
25262728293031

%d bloggers like this: