歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Objective-C數組使用小結

Objective-C數組使用小結

日期:2017/3/1 10:08:28   编辑:Linux編程

使用數組對象創建的數組功能非常強大,在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]);
  4. }

快速枚舉遍歷方法

  1. for (NSObject *object in arr) {
  2. NSLog(@"快速枚舉遍歷數組對象為: %@",object);
  3. }

動態可變數組的管理方式和不可變數組類似。

  1. NSMutableArray * arr=[NSMutableArray arrayWithCapacity:10];
  2. [arr addObject:@"xiaoli"];
  3. [arr addObject:@"xiaowang"];
  4. [arr addObject:@"xiaotian"];
  5. NSLog(@"arr count = %d ,%@",[arr count],[arr objectAtIndex:0]);
  6. for (int i=0;i<[arr count];i++)
  7. {
  8. NSLog(@"普通遍歷:i = %d 時的數組對象為: %@",i,[arr objectAtIndex: i]);
  9. }
  10. [arr removeObjectAtIndex:1];
  11. for (NSObject *object in arr) {
  12. NSLog(@"快速枚舉遍歷數組對象為: %@",object);
  13. }
Copyright © Linux教程網 All Rights Reserved