[iOS Dev] Core Data [Part II]

ต่อไปจะเป็นการเรียกใช้แล้วนะครับ
ผมนัั่งงมมันตั้งนานแนะ เจอ Error แปลก ๆ ด้วยตัวเอง แต่พอผ่านไปได้ ก็เรียนรู้ได้นะ

ขั้นแรกก็ทำการนำเข้าไฟล์ Header ของ Data Model ของเราซะก่อน



อย่างที่บอกว่า เราจะทำงานกับตัว ManagedObjectContext  อย่างเดียว
ดังนั้นเราจะทำงานกับ Core Data ใน View ไหนก็ให้ประกาศ Property ไว้ที่ View นั้น ๆ 



และอย่างที่บอกอีกว่า... ฐานข้อมูลมีอันเดียว ฉะนั้น ManagedObjectContext ก็มีตัวเดียว
เราก็ต้องใช้ ManagedObjectContext ที่อยู่ใน View ต่าง ๆ นั้น อ้างถึง ManagedObjectContext ที่อยู่ใน
AppDelegate ซะก่อน โดยทำแบบนี้....


**ทำแบบนี้ในทุกไฟล์ .m ที่มีการเรียกใช้ ManagedObjectContext นะครับ

ต่อมาบาสก็เขียนโปรแกรมไป จนได้คะแนนของผู้เล่นออกมา มาดูการบันทึกข้อมูลลงฐานข้อมูลอันง่ายแสนง่ายกันครับ เขียนแค่นี้เองงง....


แค่นี้จริง ๆ ในโค้ด ก็เป็นการอ้างถึง Entity ที่ชื่อว่า LeaderBoard แล้วจากนั้น
ก็สั่งให้ วันที่เท่ากับวันเวลาปัจจุบัน และ Score ก็รับเข้ามา...
จากนั้นก็เรียกใช้ method Save เพื่อบันทึกลงฐานข้อมูล

จากนั้นในอีก View นึงนั่นคือ View ที่จะแสดงข้อมูลทั้งหมดในฐานข้อมูลออกมา...
เราจะใช้สิ่งที่เรียกว่า FetchRequest ครับ... มาดูกัน...

เหมือนเดิมเราก็ทำงานสร้าง ManagedObjectContext ขึ้นมา
และคงรู้นะครับว่า ข้อมูลที่อยู่ในฐานข้อมูลนั้นมีลักษณะเป็น Table-Row ฉะนั้นให้เราสร้าง NSArray       มาเพื่อเก็บข้อมูลเหล่านั้น ก่อนที่จะแสดงด้วย (ส่วนใหญ่จะแสดงในรูปของ UITableView)


จากนั้นการเรียกใช้ก็ไม่มีอะไรยากเลยครับ...


ก็เหมือนเดิม เมื่อเราประกาศ Property ของ วัตถุ ก็จัดการ synthesize เพื่อสร้าง getter/setter ให้มันซะ
จากนั้นก็อ้างอิง ManagedObjectContext ที่เราประกาศ กับตัวที่อยู่ใน AppDelegate
แล้วก็เขียน Method เพื่อทำการ Fetch ข้อมูลดังนี้


หลักการทำงานก็คงเป็นเช่นเดิมแหละครับ นั่นคือ
เราก็อ้างถึง Entity ที่ชื่อ LeaderBoard จากนั้นก็สร้าง FetchRequest เพื่อ Fetch ข้อมูลจากฐานข้อมูล
ในที่นี้บาสใช้ SortDescriptor เพื่อเรียงข้อมูลจาก มากไปน้อย ด้วย (High Score) นี่นา
แล้วจากนั้นก็นำ Array ที่สร้างขึ้นมา รับสิ่งที่ Fetch ออกมาไว้
แล้วก็ Reload TableView เพื่อแสดงข้อมูล ^^

Blog นี้ไม่ได้ลงลึกอะไรมากมาย แต่เน้นการนำไปใช้จริงเลยนะครับ
ถ้าอยากเข้าใจอะไรเบื้องลึกกว่านี้แนะนำให้หาหนังสือ อ่านเพิ่มเติมนะครับ...
โค้ดนี้สามารถนำไปประยุกต์กับฐานข้อมูลที่เป็นแบบเดี่ยวๆ (None Relationship) ได้ทุกชนิดเลยนะครับ

Coding Style อ้างอิงจากหนังสือ "คู่มือเขียน iPhone Apps" ของอาจารย์รวิทัต ภู่หลำ 

ขอจบ Blog เพียงเท่านี้นะครับ
สงสัยอะไร ส่วนไหน สามารถถามได้นะครับ Comment ที่นี่
หรือ Follow มาทาง Twitter @iMacbaszii  ก็ได้ครับ ...

Popular posts from this blog

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android

"อีสุกอีใส" ประสบการณ์เมื่อต้องมาเป็นตอนอายุ 22