歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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.     } 
Copyright © Linux教程網 All Rights Reserved