NSArray
  - 배열은primitive type변수들을담는그릇 
  - NSArray는“객체”들을담는데사용 
    - 즉, 모든원소는객체이어야함 
    - 만일정수를넣고싶으면“정수객체”로변환시켜야함! 
    - 배열과마찬가지로크기를변경할수없음 
        -크기변경이필요한경우NSMutableArray사용 

  + (id) arrayWithObjects: (id)firstObj, …; 
NSArray *array; 
array = [NSArray arrayWithObjects: @"one", @"two", @"three", nil]; 
  // 3개의객체가array에들어감. 
  // arrayWithObjects:는nil 객체를만날때까지객체리스트를삽임. 
  // nil 객체는결국객체리스트의끝을나타내고NSArray객체에포함되지는않음 


  -(unsigned) count; 
  -(id) objectAtIndex: (unsigned int) index; 
NSArray* array; 
array = [NSArrayarrayWithObjects: @”one”, @”two”, @”three”, nil]; 

int i; 
for(i=0; i < [array count]; i++ ) { 
    NSLog(@”index %d has %@.”, i, [array objectAtIndex: i]); 
}
 
[array objectAtIndex:208000]; // 오류! 
*** Terminating app due to uncaught exception ‘NSRangeException’, reason: *** - [NSCFArrayobjectAtIndex:]: index (208000) beyond bounds (3)






NSMutableArray 
    - NSArray는추가/삭제가안됨=> NSMutatableArray사용 

  +(id) arrayWithCapacity: (unsigned) numItems; // factory method 
  -(void) addObject: (id) anObject; //원소를 추가할 때 쓰는 instance method
  -(void) removeObjectAtIndex: (unsigned) index; // 원소삭제 
   … 
NSMutableArray *array; 
array = [NSMutableArray arrayWithCapacity: 17]; 
for(i =0; i <4; i++){ 
    Tire *tire = [Tire new]; 
    [array addObject: tire]; 
}
… 
[array removeObjectAtIndex: 1]; 
… 

Enumeration 
    - NSArray(혹은NSMutableArray)에서 index를 잘못 사용하면 Range Exception 발생 
      - enumerator를사용하면순차적으로각원소를추출할수있음 

  -(NSEnumerator*) objectEnumerator; 
  -(id) nextObject;
                                                                             주의: 
                                                                             NSMutatableArray객체에대해서 
                                                                             enumerator를사용하는경우 
                                                                             객체삽입/삭제를하면안됨! 
 
NSEnumerator *enumerator; 
enumerator = [array objectEnumerator]; 
// 역순을원하면 reverseObjectEnumerator를사용 
id thingie; 
while( thingie = [enumerator nextObject] ) { 
  NSLog(@"I found%@", thingie); 

Comment



티스토리 툴바