Tag Archives: NSMutableArray

Foundation Framework III – Array part. 2

มาต่อด้วยเรื่องของ NSArray กันต่อเลยละกัน

ในการประกาศ NSArray จะเห็นว่ามีตัวแปรตัวสุดท้ายเป็น nil ( หรือ NULL ใน C/C++ ) เพื่อเป็นการบอกว่าสิ้นสุด array ดังตัวอย่าง 

NSEnumerator

จากครั้งที่แล้ว การอ้างอิงถึง member ของ array ทำได้ด้วยการ ใช้ method ที่ชื่อว่า objectAtIndex เรายังสามารถเข้าถึง member ได้อีกวิธีหนึ่งนั่นก็การใช้ NSEnumerator

การใช้ NSEnumerator ก็คล้ายกับการใช้ iterator ใน stl ของภาษา c/c++ เลย

Searching

เราสามารถค้นหา object member ใน array ได้ด้วย method ที่มีชื่อว่า containsObject โดย methode นี้จะส่งค่า YES หรือ NO กลับมาให้ และยังมีอีกหนึ่ง method ที่ค้นหาตำแหน่งของ member นั่นคือ  indexOfObject

ตัวอย่าง:

NSMutableArray – 2

ก็เพิ่มเติมในส่วนของ mutable array กันสักหน่อย หลังจากครั้งก่อน เราทำการเพิ่ม member ให้กับ array ด้วย  addObject และ insertObject:atIndex  ไปแล้ว  ยังมีอีก 2 method ที่จำเป็นเหมือนกัน นั่นก็คือ  remove กับ replace

  • remove
    การ ลบ object ทำได้การเรียกใช้ methode ที่มีชื่อว่า removeObject หรือเราอาจจะ ใช้ removeObjectAtIndex เป็นการ ลบ object member ในตำแหน่งที่ต้องการ ออกจาก array
  • replace
    การ replace ทำได้ด้วยการเรียกใช้ replaceObjectsAtIndexes:withObjects:

ตัวอย่างการใช้งาน

ก็วันนี้มี source มาให้ด้วย

Foundation Framework III – Array part. 1

NSArray วันนี้มาว่าด้วยเรื่อง Array  Object  สำหรับ NSArray นั้นคือ class ที่เอาไว้เก็บ object โดยมีลำดับเป็นการอ้างอิง และ array นั่นก็มีอยู่ 2 แบบเหมือนๆกับ string คือ mutable ( เปลี่ยนแปลงค่าได้ ) และ immutable ( เปลี่ยนค่าไม่ได้ )

  • โดยการประกาศ immutable จะใช้ NSArray
  • ส่วน mutable จะใช้ NSMutableArray

การใช้ที่จะไช้ array เราก็ต้องทำการ #import <Foundation/NSArray.h> เข้ามาถึงจะสามารถใช้งานได้

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

Mutable

จากข้างบน เราประกาศตัวแปร dayName แล้วก็ให้กำหนดค่าเริ่มต้น(initial) ให้กับ array  เลย  โดยเราเรียกใช้  arrayWithObjects เพื่อทำการกำหนดค่าให้กับ Array ตั้งแต่ประกาศตัวแปรตั้งแต่แรก  แล้วเราก็มาทำการวน loop ให้แสดงค่าใน array ออกมา  จะมีที่พิเศษใน loop หน่อยก็ตรงที่เราสามารถนับจำนวน array ได้ด้วย count  เช่น  [dayName count];

***  arrayWithObjects   ต้องมี s ด้วยน่ะ  ถ้าไม่งั้นจะเป็น   arrayWithObject แล้วมันจะ  init ได้แค่ตัวเดียว ***

Immutable

ก็การประกาศ NSMutableArray ก็เหมือนๆกับ NSArray จะทำการ init เลยตั้งแต่แรกเหมือน NSArray ก็ได้ แต่จากตัวอย่างเราจะกำหนด ขนาดให้กับ Mutable Array ก่อน แล้วหลังจากนั้นจึงค่อยๆใส่ค่าตัวแปรให้กับ Mutable Array  โดยการเรียกใช้งาน   addObject

และหลังจาก addObject ไปได้ 2 object เราก็  เพิ่ม object ให้กับ Mutable array  โดยการเรียก     insertObject:atIndex  ตรงนี้เป็นการใส่ค่าให้กับ Mutable Array  โดยสามารถกำหนดว่าจะแทรกไว้ตำแหน่งไหนของ Mutable array ก็ได้

ผลลัพธ์ที่ได้ก็จะเป็น แบบนี้

Day name:
Sunday Monday Tueday Wednesday Thursday Friday Saturday

Current array
Summer Winter

After insert
Autumn Summer Winter Spring

*** เดี๋ยวมาต่อเรื่อง Array อีกที  มันค่อนข้างเยอะ ***
ปล. ยังไม่มี source น่ะครับบ