OC中数组的使用方法

#import  <Foundation/Foundation.h>

int  main( int  argc,  const   char  * argv[])
{
    
//  创建数组
    
NSArray  *arr1 =  nil ;
//    NSLog(@"%p", arr1);
    
NSObject  *obj = [ NSObject   new ];
    arr1 = [
NSArray   arrayWithObjects : @"One" @"Two" @"Three" , obj,  nil ]; // 结束标识,相当于 C 语言的 “\0”
//    NSLog(@"%p", arr1);
    
NSLog ( @"arr1: %@" , arr1);
    
    
//  推荐以下的新语法
    
NSString  *str =  @"Hello" ;
    
NSArray  *arr2 =  @[ @"zhangsan" @"lisi" @"wangwu" @"zhaoliu"  , @"tianqi" , str ] ; // 这样的方法自己主动在后面加入了 nil
    
NSLog ( @"arr2: %@" , arr2);
    
    
//  訪问数组成员  objectAtIndex
//    NSObject *tmpObj = [arr1 objectAtIndex:3];
    
id  tmpObj = [arr1  objectAtIndex : 3 ];
    
NSLog ( @"tmpObj: %@" , tmpObj);
    
    
//  推荐使用以下的新语法
    tmpObj = arr2[
2 ];
    
NSLog ( @"arr2[2]: %@" , tmpObj);
    
    
//  可变数组
    
NSMutableArray  *firstArr = [ NSMutableArray   arrayWithCapacity : 30 ];
    
//  加入
    [firstArr 
addObject : @"One" ];
    [firstArr 
addObject : @"Two" ];
    [firstArr 
addObject : @"Three" ];
    [firstArr 
addObject : @"Four" ];
    [firstArr 
addObject : @"Five" ];
    
    
NSLog ( @"The Mutable Array: %@" , firstArr);
    
    
NSMutableArray  *secArr = [ NSMutableArray   arrayWithArray :arr2];
    
NSLog ( @"secArr: %@" , secArr);
    
    
//  删除
    [secArr 
removeObject : @"tianqi" ];
    
NSLog ( @"==secArr: %@" , secArr);
    [secArr 
removeObjectAtIndex : 2 ];
    
NSLog ( @"===secArr: %@" , secArr);
    
    
//  插入
    [secArr 
insertObject : @"wangwu"   atIndex : 2 ]; //id  是对象   index  是位置
    
NSLog ( @"after insert: %@" , secArr);
    
    
//  替换
    
NSObject  *someObj = [ NSObject   new ];
    [secArr 
replaceObjectAtIndex : 4   withObject :someObj];
    
NSLog ( @"after replace: %@" , secArr);

    
    
// C 语言遍历数组
    
NSUInteger  number = [secArr  count ];
    
for  ( int  i =  0 ; i < number; i++) {
        
id  obj = secArr[i];
        
NSLog ( @"%@" , obj);
    }
    
    
    
//  通过枚举器来遍历数组(正着遍历)
    
NSEnumerator  *enum1 = [secArr  objectEnumerator ];
    
id  obj1;
    
NSLog ( @"*************************" );
    
while  (obj1 = [enum1  nextObject ]) {
        
NSLog ( @"obj1: %@" , obj1);
    }
    
    //  通过枚举器来遍历数组(倒着遍历)    
    NSEnumerator  *enum2 = [secArr  reverseObjectEnumerator ];
    
while  (obj1 = [enum2  nextObject ]) {
        
NSLog ( @"reverse: %@" , obj1);
    }
    
    
NSLog ( @"============================" );
    
//  高速枚举
    
for  ( id  obj  in  secArr) {
        
NSLog ( @"Fast Enumeration: %@" , obj);
    }
    
    
    
return   0 ;
}

转载于:https://www.cnblogs.com/mfmdaoyou/p/6731619.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值