黑马程序员_NSArray

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

NSArray

NSArray是一个Cocoa类,用来储存对象的有序列表。NSArray是不可变的,而且只能储存Object-c对象。另外,数组的最后一个元素一定是nil,表示结束。这些集合类只能收集cocoa对象(NSOjbect对象),如果想保存一些原始的C数据(例如,int,float, double,BOOL等),则需要将这些原始的C数据封装成NSNumber类型的,NSNumber对象是cocoa对象,可以被保存在集合类中。

创建NSArray

    // 创建一个空的数组
    NSArray *array = [NSArray array];

    // 创建一个有一个元素的数组
    array = [NSArray arrayWithObject:@"123"];
    
    // 创建有多个元素的数组
    array = [NSArray arrayWithObjects:@"a",@"b",@"c",nil];

使用

 NSObject *obj = [[NSObject alloc] init];
    NSArray *array = [NSArray arrayWithObjects:@"a",@"b",@"c",nil];
     // 判断是否包含了某个元素
    if ([array containsObject:@"a"]) {
        NSLog(@"包含了字符串a");
    }
    
    // 获取最后一个元素
    NSString *last = [array lastObject];
    NSLog(@"last = %@",last);
    
    // 获取索引位置的元素
    NSString *str = [array objectAtIndex:1];
    NSLog(@"第1个位置的元素是%@",str);
    
    // 获取某个元素的索引
    NSUInteger index = [array indexOfObject:@"a"];
    NSLog(@"a的位置是第%li",index);
    
    [obj release];


遍历

索引

- (NSUInteger)count;
可以获取它所包含的对象个数


for(NSinteger i = 0;i < [array count]; i++)
{
NSLog(@“”index %d has %@.”,i,array[i])
}


for(NSinteger i = 0;i < [array count]; i++)
{
NSLog(@“”index %d has %@.”,i,[array objectAtIndex:i])
}


枚举

从前往后

- (NSEnumerator *)objectEnumerator;

从后往前

- (NSEnumerator *)recerseObkectEnumerator

在获得枚举器之后,就可以开始一个while循环,每次循环都向这个枚举器请求它的nextObject

- (id) nextObject;


NSEnumerator *enumerator = [array objectEnumerator];
while(id thingie = [enumerator nextObject])
{
NSLog(@“I found %@”,thingie);
}

快速枚举

for (NSStirng *string in array)
{
NSLog(@"I found %@,string");
}

这个循环体将会遍历数组中的每一个元素,并且用变量string来储存每个数组值。


Block

还有一个通过代码块枚举对象的方法

- (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block


[array enumerateObjectsUsingBlock:^(NSString *string,NSUInteger index,BOOL *stop)]
{
NSLog(@"I found %@",string);
}]

可变数组

与NSString一样NSArray也有一个可改变的对象数组NSMutableArray

创建NSMutableArray

+ (id) arrayWithCapacity: (NSUInteger) numItem;

</pre><pre name="code" class="html">NSMutableArray *array = [NSMutableArray arrayWitCapacity: 17]

添加

- (void) addObject: (id) anObject;


for(NSInteger i = 0;i<4;i++)

{

Tire *tire = [Tire new]

[array addObject: tire];
}

删除

- (void) removeObjectAtIndex: (NSUInteger) index;


[array removeObjectAtIndex:1];





---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------详细请查看: http://edu.csdn.net
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值