Foundation Framework III – Array part. 2

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

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

NSArray *dayName = [NSArray arrayWithObjects:
@"Sunday" ,
@"Monday" ,
nil];

NSEnumerator

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

NSArray *dayName = [NSArray arrayWithObjects:
@"Sunday" ,
@"Monday" ,nil];
 
NSEnumerator *enumerator;
id obj;
enumerator = [dayName objectEnumerator];
while ((obj = [enumerator nextObject]) != nil)
{
	NSLog (@"Next day is: %@", obj);
}

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

Searching

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

ตัวอย่าง:

if ( [dayName containsObject:@"Sunday"] == YES )
{
	int index = [dayName indexOfObject:@"Sunday"];
	printf("Index is: %d" ,index);
}

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:

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

[dayName removeObject:@"Monday"];
[dayName removeObjectAtIndex:1];
 
[dayName replaceObjectsAtIndexs:1  :withObjects: @"Friday"];

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

Leave a Reply