Objective-C数组使用小结

使用数组对象创建的数组功能非常强大,在Java语言或者C语言中定义的数组必须满足数组中的每一个元素必须是同样的类型。
而Objective-C语言可以在Array数组中放任意类型的objective-c的对象。有两点值得注意,一是只能放指向这个对象的指针,而不能直接放int ,char,double 等等;二是不能放nil。

使用NSArray关键字创建一个不可变的数组,一旦初始化完毕后这个数组的元素是不可以再动态地添加和删除。

[array count] : 得到这个对象数组的长度。
[array objectAtIndex:0]: 传入数组脚标的id 得到数据对象。
[array arrayWithObjects:xx,xx,xx,nil] :向数组对象初始化赋值。这里可以写任意对象的指针,结尾必须使用nil,标识为数组定义结束。

+ (id)array WithObjects :(id)firstObject, ...;    //  nil  terminated 
- (int)count;
- (id)objectAtIndex:(int)index;                    //  NSString *s1=[[myarray objectAtIndex: 0];
- (void)makeObjectsPerformSelector:(SEL)aSelector;
- (NSArray *)sortedArrayUsingSelector:(SEL)aSelector;
- (id)lastObject; // returns nil if there are no objects in the array (convenient)

  1. NSArray *arr=[NSArray arrayWithObjects:@"one xiaowang",@"two xiaoli",@"three xiaotian",nil];  
  2. NSLog(@"arr count = %d ,%@",[arr count],[arr objectAtIndex:0]); 

遍历数组中对象的方法有两种,一种称为普通遍历;另一种称为快速枚举遍历。

但apple认为前者效率低下且安全性不高,推荐使用后者即快速枚举法。

普通遍历方法

  1. for (int i=0;i<[arr count];i++)  
  2. {  
  3.     NSLog(@"普通遍历:i = %d 时的数组对象为: %@",i,[arr objectAtIndex: i]);  

快速枚举遍历方法

  1. for (NSObject *object in arr) {  
  2.      NSLog(@"快速枚举遍历数组对象为: %@",object);  
  3.  } 

动态可变数组的管理方式和不可变数组类似。

  1. NSMutableArray * arr=[NSMutableArray arrayWithCapacity:10];  
  2.  
  3.     [arr addObject:@"xiaoli"];  
  4.     [arr addObject:@"xiaowang"];  
  5.  
  6.     [arr addObject:@"xiaotian"];  
  7.  
  8.     NSLog(@"arr count = %d ,%@",[arr count],[arr objectAtIndex:0]);  
  9.  
  10.     for (int i=0;i<[arr count];i++)  
  11.     {  
  12.         NSLog(@"普通遍历:i = %d 时的数组对象为: %@",i,[arr objectAtIndex: i]);  
  13.     }  
  14.  
  15.     [arr removeObjectAtIndex:1];  
  16.  
  17.     for (NSObject *object in arr) {  
  18.         NSLog(@"快速枚举遍历数组对象为: %@",object);  
  19.     } 

相关推荐