Foundation Framework IV – Dictionary

ก็ตอนนี้ก็เขียนมาเกือบจะจบ Foundation Framework แล้วอะน่ะ วันนี้มาต่อด้วยเรื่อง dictionary กันดีกว่า

ในภาษา objective-c มี class ที่เป็นลักษณะ data structure ค่อนข้างเยอะมาก และหนึ่งในนั้นที่ควรจะรู้ก็คือ dictionary งั้นมาทำความเข้าใจก่อนเลยละกันว่ามันคืออะไร

NSDictionary นี้มันก็คือ class ที่เก็บตัวแปรหลายๆตัวได้ ไม่จำกัดว่าจะเป็นตัวแปร ชนิดเดียวกันหรือไม่ อาจจะต่างชนิดกันก็ได้ และการเก็บตัวแปรแต่ละตัวนั้นจะมี keyword
เป็นส่วนที่ใช้อ้างอิงถึงตัวแปรนั้น ก็เหมือนๆกับพจนานุกรมนั่นเหละ เวลาเราจะหาความหมายของคำแปรนั้นๆ ก็เปิด dic แล้วก็ค้นหาความหมายโดยใช้ keyword การใช้ NSDicttionary ก็เช่นเดียวกัน อยากได้ตัวแปรไหนก็ใช้ keyword ทำการหาค่าของตัวแปรนั้นๆ

NSDictionary มี class ย่อยๆ 2 ส่วนเหมือนๆกับ NSArray NSString นั่นก็คือ Mutable และ Immutable ซึ่งก็ประกอบไปด้วย class ต่อไปนี้

  • NSDictionary
  • NSMutableDictionary

เรามาดูตัวอย่าง การใช้งานง่ายๆกัน

ตัวโปรแกรมเองก็ไม่ได้มีอะไรซับซ้อนเลย เป็นการเก็บค่าตัวแปรชนิดต่างๆ NSDictionary นั้นจะมี Function สำคัญคือ dictionaryWithObjectsAndKeys
ตรงนี้จะเป็นการประกาศ NSDictionary แล้วเราก็ทำการ init ค่าให้แก่ตัวแปร ถ้าดูจาก code จะเห็นส่วนที่เป็นสี สลับกัน 3 สี โดยที่ตัวแรกคือ data ส่วนตัวที่สองคือ keyword เช่น

  • [NSNumber numberWithInt:] ตัวแรกนี้คือ data ที่่ต้องการเก็บ
  • @”iNumber” ส่วนตัวหลังคือ keyword
จะเห็นว่า NSDictionary นั้นสามารถเก็บตัวแปรที่ต่างชนิดกันได้
เมื่อเราจะเรียกใช้ ก็เพียงแค่ เรียกใช้ function objectForkey: แล้วก็ตามด้วย key ที่ต้องการเช่น [dic objectForKey:@”iString”]
ส่วน NSMutableDictionary นั้นเราก็ทำการประกาศโดยที่ไม่ต้อง init เหมือนกับ NSDictionary ก็ได้ แล้วค่อยมาเพิ่มตัวแปรเข้าไปที่หลังด้วย function ที่ชื่อว่า setObject:forKey เป็นต้นว่า

เวลาเรียกใช้งานก็เหมือนกับ NSDictionary คือเรียก objectForKey ก็เป็นอันจบ ส่วนข้อแตกต่างระกว่าง mutable กับ immutable ผมคงไม่อธิบายแล้วนะครับ เพราะว่าใน NSArray กับ NSString ได้อธิบายไปแล้ว

โหลด source ไปลองเล่นกันได้
Download Foundation Framework IV Source Files

Leave a Reply