NSArray

NSArray
1. 배열 생 성:
NSArray *array = [NSArray array];    //  array                   。

array = [NSArray arrayWithObject:@"123"];    //arrayWithObject:         1      。

array = [NSArray arrayWithObjects:@"a", @"b", @"c", nil];
//arrayWithObjects:                。

int count = [array count]; 
//   : count = array.count; count            。

2. 배열 의 간단 한 사용:
NSObject *obj = [[NSObject alloc] init];

NSArray *array = [NSArray arrayWithObjects:@"a", @"b", @"c" , obj, nil];
//  OC       OC   , :obj。

if ([array containsObject:@"a"]) {
//containsObject:       array          @"a",    BOOL  。
     NSLog(@"      a");
} 

NSString *last = [array lastObject];    
//lastObject         array       。

NSString *str = [array objectAtIndex:1];    
//objectAtIndex:                  。

int index = [array indexOfObject:@"c"];    
//indexOfObject:            @"c"       (  )。

-(NSUInteger)indexOfObject(id)anObject inRange:(NSRange)range 
//      range            。

-(BOOL)isEqualToArray(NSArray *)otherArray 
//

-(id)firstObjectCommonWithArray(NSArray *)otherArray 
//

3. 배열 의 메모리 관리:
Student *stu1 = [[Student alloc] init];
Student *stu2 = [[Student alloc] init];
Student *stu3 = [[Student alloc] init];

NSLog(@"stu1:%zi", [stu1 retainCount]);
//retainCount       stu1            。

NSArray *array = [[NSArray alloc] initWithObjects:stu1, stu2, stu3, nil]; //initWithObjects:        stu1, stu2, stu3     ,            ,          1,            retain  。

[stu1 release];
[stu2 release];
[stu3 release];
[array release]; //         ,             release  。

4. 배열 의 요소 에 메 시 지 를 보 냅 니 다:
Student *stu1 = [[Student alloc] init];
Student *stu2 = [[Student alloc] init];
Student *stu3 = [[Student alloc] init];

NSArray *array = [NSArray arrayWithObjects:stu1, stu2, stu3, nil];
//arrayWithObjects:        stu1, stu2, stu3     。

[array makeObjectsPerformSelector:@selector(test)];
//makeObjectsPerformSelector:@selector()      array          test  。

[array makeObjectsPerformSelector:@selector(test2:) withObject:@"123"];
//makeObjectsPerformSelector:@selector()withObject:      array          test2:         @"123";           ; :test2:        。

5. 배열 옮 겨 다 니 기:
NSArray *array = [NSArray arrayWithObjects: @"1", @"2", @"3", nil];
int count = array.count;//            ,count         。
for (int i = 0; i<count; i++) 
{
    // id       void *
    id obj = [array objectAtIndex:i];

    NSLog(@"%i-%@", i, obj);
}

//    :for-in   
NSArray *array = [NSArray arrayWithObjects: @"1", @"2", @"3", nil];
int i =0;
for (id obj in array) 
{ //    , array           obj。

    NSLog(@"%i-%@", i, obj);//i  array    。
    i++;
}

//  Block    (      ):
NSArray *array = [NSArray arrayWithObjects: @"1", @"2", @"3", nil];
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) 
{ NSLog(
@"%i-%@", idx, obj); //enumerateObjectsUsingBlock: Block array, Block;obj、idx、*stop ,obj 、idx 、*stop , *stop = YES; 。 if (idx == 1) {// 1, *stop = YES; // BOOL } }]; // NSArray *array = [NSArray arrayWithObjects: @"1", @"2", @"3", nil]; NSEnumerator *enumerator = [array objectEnumerator]; // NSEnumerator *enumerator = [array reverseObjectEnumerator]; // ( ) NSArray *array2 = [enumerator allObjects]; // allObjects 。 NSLog(@"array2:%@", array2); id obj = nil; while (obj = [enumerator nextObject]) { //nextObject 。 NSLog(@"obj=%@", obj); }

6. 새로운 배열 을 파생 합 니 다:
NSArray *array = [NSArray arrayWithObjects:@"1", @"2", nil];
NSArray *array2 = [array arrayByAddingObject:@"3"];
//arrayByAddingObject:           array         (  )        array2。

NSArray *array3 = [array arrayByAddingObjectsFromArray:[NSArray arrayWithObjects:@"4", @"5", nil]];
//arrayByAddingObjectsFromArray:           array           [NSArray arrayWithObjects:@"4", @"5", nil]        array3。

NSArray *array4 = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", nil];
NSRange range = NSMakeRange(1, 2);
NSArray *array5 = [array4 subarrayWithRange:range];
//subarrayWithRange:         range     array4          。
NSLog(@"array5:%@", array5);

// :array、array2、array3、array4、array5            ,              。

7. 배열 의 다른 용법:
NSArray *array = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", nil];
NSString *str = [array componentsJoinedByString:@"-"];
//componentsJoinedByString:          -    array           @”1-2-3-4”。   

NSString *path = @"/Users/apple/Desktop/array.xml";//
[array writeToFile:path atomically:YES];//writeToFile:(NSString *) atomically:(BOOL)         array    path    (      xml  ),atomically:YES          。

path = @"/Users/apple/Desktop/array.txt";
NSArray *array2 = [NSArray arrayWithContentsOfFile:path];
//arrayWithContentsOfFile:         path   (          XML  )          。

 
NSMutableArray
NSMutableArray *array = [NSMutableArray arrayWithObject:@"1"];//NSMutableArray       。
[array addObject:@"2"];//     
[array addObject:@"3"];

[array removeObject:@"2"];//removeObject:         array      @"2"。
[array removeLastObject];//removeLastObject         array       。
[array removeAllObjects];//removeAllObjects         array      。

NSMutableArray *models = [NSMutableArray arrayWithCapacity:20]; 
// arrayWithCapacity            。

-(void)setArray:(NSArray *)otherArray     //
-(void)addObjectsFromArray:(NSArray *)otherArray    //  otherArray           。

-(void)insertObject:(id)anObject atIndex:(NSUInteger)index    // index        。
-(void)insertObjects:(NSArray *)objects atIndexes:(NSIndexSet *)indexes    // indexes         objects      。

-(void)removeObjectAtIndex:(NSUInteger)index    //  index     。
-(void)removeObjectsAtIndexes:(NSIndexSet *)indexes    //  indexes       。
-(void)removeObject:(id)anObject inRange:(NSRange)range    // range              。
-(void)removeObjectsInArray:(NSArray *)otherArray    //       otherArray           。
-(void)removeObjectsInRange:(NSRange)range    //  range        。

-(void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject    // anObject  index       。
-(void)replaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray *)objects // objects          indexes       。

-(void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray range:(NSRange)otherRange
// otherArray   otherRange            range      。

-(void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray    // otherArray            range      。

-(void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2    //  idx1 idx2     。

//             NSArray   。
-(void)sortUsingDescriptors:(NSArray *)sortDescriptors;
-(void)sortUsingComparator:(NSComparator)cmptr;
-(void)sortUsingSelector:(SEL)comparator;
//
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"1", @"3", @"2", nil];
[array sortUsingSelector:@selector(compare:)];    
NSLog(@"%@", array);

 주: OC 에서 배열 과 사전 은 OC 대상 만 저장 할 수 있 고 기본 데이터 형식 을 저장 할 수 없습니다.

좋은 웹페이지 즐겨찾기