objective c中的数组和简单操作(四)

 

holydancer原创,如需转载,请在显要位置注明:

转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/7346221

更多内容访问:这里

在objective c中,除了C的数组使用方法,Cocoa还为我们提供了一个NSArray类,使用该类可以简单方便的存储对象,该类同NSMutableString一样,还有一个子类,用于处理可变数组:NSMutableArray.类中的方法简单直了,很容易理解,下面只做一些简单的示范:

 

 

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        //数组可以一次性添加完全,以nil作为结尾标志。
        NSArray *array =[NSArray arrayWithObjects:@"DANCER",@"holy", nil];
        //如果要添加空的话可以用以下方法
        NSArray *array1=[NSArray arrayWithObjects:@"dancer",[NSNull null], nil];
        //同字符串一样,可以建立可变更的数组,并设置一个初始量。
        NSMutableArray *array2=[NSMutableArray arrayWithCapacity:50];
        //下面可以动态添加数组元素
        [array2 addObject:@"holy"];
        [array2 addObject:@"dancer"];
        [array2 addObject:@"hoho"];
        //合并字符串数组
        NSString *str = [array2 componentsJoinedByString:@"|"];
        NSLog(str);
        //字符串切割成数组
        NSArray *array3=[str componentsSeparatedByString:@"|"];
        NSLog(@"%@",array3);
        //可变数组元素删除
        [array2 removeObjectAtIndex:1];
        NSLog(@"%@",array2);
        
        
        
        
    }
    return 0;
}

 

 

 

 

 

 

NSArray可以放一切数据,除了C中的基本数据类型,C中的一些基本元素我们可以用NSNumber类来包装,类似java中的装箱,另外还有一些struct类型的数据我们也可以用NSNumber类的父类NSValue来进行包装,包装成NSValue的对象再将其放入数组中。具体使用方法看代码:

 

 

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        NSMutableArray *array = [NSMutableArray arrayWithCapacity:50];
        int age=5;
        char c='c';
        float f=3.14;
        NSRect rect =NSMakeRect(1, 2, 3, 4);
        NSNumber *myAge = [NSNumber numberWithInt:age];
        NSNumber *myC = [NSNumber numberWithChar:c];
        NSNumber *myF= [NSNumber numberWithFloat:f];
        NSValue *value = [NSValue valueWithRect:rect];
        [array addObject:myAge];
        [array addObject:myC];
        [array addObject:myF];
        [array addObject:value];
        NSLog(@"%@",array);
    }
    return 0;
}

 

 

 

 

 

 

Cocoa提供了好几种方法进行数组的迭代,如上所示,我们直接用%@可以输出数组的详细信息,也可以使用以下方法将其元素分别取出:

 

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        NSMutableArray *array = [NSMutableArray arrayWithCapacity:50];
        [array addObject:@"a"];
        [array addObject:@"b"];
        [array addObject:@"c"];
        [array addObject:@"d"];
        NSLog(@"%@",array);//以大括号形式输出数组内容
        //第一种迭代方法
        for(int i=0;i<[array count];i++)
        {
            NSLog(@"%@",[array objectAtIndex:i]);
        }
        //第二种迭代方法
        id ob;
        NSEnumerator *enumerator = [array objectEnumerator];//实现一个迭代器
        while(ob=[enumerator nextObject])
        {
            NSLog(@"%@",ob);
        }
        //第三种最简单的for in迭代方法
        id oc;
        for (oc in array) {
            NSLog(@"%@",oc);
        }
    }
    return 0;
}

 

 

 

 

 

 

关键字:objective-c ,objective c , oc ,数组 

 

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值