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

NSString은 '변형'이 안됨  -> 보안

NSMutableString*string; 

string= [NSMutableStringstringWithCapacity: 50];
[string appendString: @"Hello there"]; 
[string appendFormat: @"human %d!", 39]; 
//string은@”Hellotherehuman39”을가짐 ... 

-(void) deleteCharactersInRange: (NSRange) range; 
NSMutableString *friends; 
friends= [NSMutableString stringWithCapacity: 50]; 
[friendsappendString: @"James BethLynn Jack Evan"];

NSRange jackRange; 
jackRange = [friends rangeOfString: @”Jack”]; 
jackRange.length++; // 공백문자포함시킬려고1 증가 

[friends deleteCharactersInRange: jackRange]; 
//결과문자열은“James BethLynn Evan” 

'STUDY > Objective-C' 카테고리의 다른 글

[Objective C] method 앞에 plus (+) , minus (-)  (0) 2010.06.24
[Objective C] NSArray , NSMutableArray, Enumeration  (0) 2010.06.24
[Objective C] NSMutableString  (0) 2010.06.24
[Objective C] NSString  (0) 2010.06.24
[MAC] Xcode 자동정렬 Tip  (1) 2010.06.24
[Objective C] Composition  (0) 2010.06.24

Comment



NSString 인스턴스를생성하는 factorymethod 
                  +(id) stringWithFormat: (NSString*) format, …; 

    NSString *height; 
    height = [NSString stringWithFormat:@"Your height is %d feet, %d inches", 5, 11];

  - 길이 
        -(unsigned int) length; 
NSString *height; 
height = [NSString stringWithFormat:@"Your height is %d feet, %d inches", 5, 11]; 
[height length]; // 문자열길이
  - 비교 
        -(BOOL) isEqualToString: (NSString*)aString; 
NSString *thing1 = @"hello 5";
NSString*thing2 =; 
thing2 = [NSString stringWithFormat:@"hello %d", 5]; 

if( [thing1 isEqualToString: thing2]) { // 주의thing1 == thing2 는전혀다른이야기! 
    NSLog(@"They are the same!"); 
}
  - 포함 
        -(BOOL) hasPrefix: (NSString*) aString;       // 시작하는 글자가 있으면 true  
        -(BOOL) hasSuffix: (NSString*) aString;
NSString*filename = @"draft-chapter.pages"; 
If([filename hasPrefix: @"draft"){          // draft라는 단어로 시작하는지
    // this is a draft 
If( [filename   hasSuffix: @".move") {   // .move라는 단어로 끝나는지
    // this is a movie 
  - 매칭범위 
        -(NSRange) rangeOfString: (NSString*) aString;
NSString*filename = @"draft-chapter.pages"; 
NSRange range; 
range = [filename    rangeOfString:@"chapter"];         // chapter이 어디서부터 어디까지

Comment



티스토리 툴바