OC_NSArrayとNSMutableArray

4863 ワード

今日OCの中の配列を記録して、間違いなくC言語の配列に対して対比します!簡単に比較してみましょう.
CとOCの配列差
//Cの配列は、1種類しか保存できません.OCの配列は、異なるタイプのオブジェクトを同時に保存できます.
//Cの配列は、一般的に基本データ型を保存し、OCの配列は、オブジェクトC:int num[10]のみを保存する.
1.NSArrayの実例化(NSStringと同様にクラスメソッドとalloc initメソッドに分けられ、nilで終わる)
NSArray *classArray = [NSArray arrayWithObjects:@"AA",@"BB",[UIColor BuleColor],nil];//   

NSArray *classArray =@[@“”,@“”]//  ,        

ついでに補足します.
NSLogでは()を見ると、これが配列であることを示します
2、配列の長さ
int count = [classArray count];

3、配列内の下付きの要素を抽出する
NSString *arrStr0 = [classArray objectAtIndex:0];

4、配列の遍歴
4.1 for循環遍歴、比較的に理解しやすい
for(int i =0;i

4.2快速遍歴for in遍歴、ここのNSString*tempStrは配列中のオブジェクトがどんなタイプであるかを知っているときは、直接このように書くことができます.確定していない場合は、4.4を参照してください.
 
   for(NSString *tempStr in classArray)

    {

        NSLog(@"%@",tempStr);

    }

4.3 bolck遍歴法
NSArray *arr=@[@"a",@[@"AA",@"BB"],@"c",];

[arrenumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) 

{//              obj     idx      bolck

        if(idx==0)//   OR        

{

*stop=YES;

}

}];

4.4複数種類のオブジェクトを巡回する
//配列に格納されている要素タイプがクラスのオブジェクトだけではない場合、遍歴はidで受信する
for(id temp in arr)

    {//              

        if([temp respondsToSelector:@selector(length)])

        {//     length         temp       

            NSLog(@"      %d",[temp length]);

        }

        if([temp respondsToSelector:@selector(count)])

        {//     count         temp      

            NSLog(@"     %d",[temp count]);

        }

    }

4.5要素の位置、つまり一般的に言われているインデックスをすばやく見つける
 NSArray *arr=@[@"a",@"b",@"c",];

 int i =[arr indexOfObject:@"b"];  

 

5、文字列の切り取り(NSStringと同様に、可変配列操作によって生成される配列または文字列)
NSString *str = @"i like iOS,   ";
5.1       ,      ,      

NSArray *strArr=[str componentsSeparatedByString:@" "];//      ,  strArr[@"i",@"like",@"iOS,   "]

5.2                      

NSString *finalStr = [strArr componentsJoinedByString:@""];//        str      

6、          

NSString *setStr = @"";

6.1、              ,        ,                 ,    

NSArray *setArr = [setStr componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<> "]];
 
   
          : 
  

(
    "",
    abcd,
    1234,
    z3c5,
    8jnh,
    ""
)


------------------------------------------------------ ! --------------------------------------------------

NSArray NSMutableArray, MSMutableString . , .

1、 : Capacity ,

//alloc

NSMutableArray *muArr = [[NSMutableArray alloc] initWithCapacity:0];

// 

NSMutableArray *classMuArr = [NSMutableArray arrayWithCapacity:0];
2、 ,     ,             ,        Object

[muArr addObject:@"AA"]

3.  。         

[muArr insertObject:@"CC" atIndex:1];

4、 

[muArr replaceObjectAtIndex:0 withObject:@"mm"];

5、 

5.1、        

[muArr removeLastObject];

5.2、      (  )   

[muArr removeObjectAtIndex:0];

5.3、      (     @"ll”,    )

[muArr removeObject:@"ll"];

5.4、  

[muArr removeAllObjects];

6、       ,          (  1 2  )

[muArr exchangeObjectAtIndex:1 withObjectAtIndex:2];