rosylxf

驾驭命运的舵是奋斗。不抱有一丝幻想,不放弃一点机会,不停止一日努力!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Objective-C之数组

Posted on 2012-07-01 23:18  rosylxf  阅读(9267)  评论(0)    收藏  举报

数组遍历的两种方式

 
#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
//也可以用:NSArray *array = [NSArray    arrayWithObjects:@"One",@"Two",@"Three",nil];


    NSArray* array = [[NSArray alloc] initWithObjects:
                      @"One",@"Two",@"Three",nil];  //nil起结束标志的作用
    
    NSLog(@"%lu", [array count]);
    
    //第一种遍历方法:
    for(int i = 0; i < array.count; i++)
    {   //如果知道数组里存的对象如本题则可以用NSString接收,如果不知道则可以用id接收
        //id obj = [array objectAtIndex:i];
        NSString* str = [array objectAtIndex:i];
        NSLog(@"%@", str);
    }
    
    //第二种变量方法:快速枚举
    for(NSString* obj in array)
    {
        NSLog(@"%@", obj);
    }
    
    NSArray* array2 = [NSArray arrayWithArray:array];
    
    
    [pool drain];
    return 0;
}

字符串分割成数组对象与连接

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    
    NSString* str = @"one,two,three,four,five";
    //分割字符创为数组,下例以“,”分割
    NSArray* array = [str componentsSeparatedByString:@","];
    for(NSString* obj in array)
    {
        NSLog(@"%@", obj);
    }
    
    //链接字符串,下例以空格连接
    str = [array componentsJoinedByString:@" "];
    NSLog(@"%@", str);
    
    
    [pool drain];
    return 0;
}

运行结果:

 

2012-06-24 23:18:51.394 demo8[412:707] one

2012-06-24 23:18:51.397 demo8[412:707] two

2012-06-24 23:18:51.398 demo8[412:707] three

2012-06-24 23:18:51.399 demo8[412:707] four

2012-06-24 23:18:51.401 demo8[412:707] five

2012-06-24 23:18:51.401 demo8[412:707] one two three four five

 

数组的插入:

NSArray只能管理OC的对象,它管理的这些对象可以是不同类型的。

数组对每一个对象具有拥有权。

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    //往数组中插入内容
    NSMutableArray* array1 = [NSMutableArray arrayWithCapacity:0];
    [array1 addObject:@"one"];
    NSLog(@"%@", array1);
    
    [array1 addObject:@"three"];  //都是插在末尾
    NSLog(@"%@", array1);
    
    [array1 insertObject:@"two" atIndex:1];  //插入索引为几的位置
    for(NSString* obj in array1)
    {
        NSLog(@"%@", obj);
    }
    
    //移除
    [array1 removeObjectAtIndex:2];
    NSLog(@"%@", array1);
    
    [pool drain];
    return 0;
}