IOS 中 NSArray

  今天在做 cordova  关于处理未读条数的插件时,需要在js中传入 int 型。  但是发现所有插件 里面的参数信息都是封装在NSArry对象里面。  因此又突然想直接在NSArry获取信息的想法。  但是发现直接获取不可取的。因此查询了相关资料又重新温习了一遍其知识。 (当然既然直接无法获取整形,那么我就变向通过  NSString 和 int 之间的互转来进行处理---[str intValue])

NSArray
用于对象有序集合(相当于是数组)
===========================================================================
NSArray是不可变的,而且只能储存Object-c对象。另外,数组的最后一个元素一定是nil,表示结束。

注:这些集合类只能收集cocoa对象(NSOjbect对象),如果想保存一些原始的C数据(例如,int, float, double, BOOL等),则需要将这些原始的C数据封装成NSNumber类型的,NSNumber对象是cocoa对象,可以被保存在集合类中。


数组常见的用法首先是创建数组,然后对数组进行操作。

对数组进行的操作可以分为:增(插入),删,改,查 , 取,遍历,排序,比较,

对于NSArray来说,因为本身是不可变的,所以对NSArray的操作没有增和删。

NSArray  *array = [ NSArray alloc] init ];

1.取

- (id)objectAtIndex : (NSInteger *)aValue   得到所给下标的数组中的值

- (NSInteger *)indexOfObject: (id)object  得到所给对象在数组中的下标

- lastObject;  得到数组中最后一个值

例如:

    Student *stu1=[Student studentWithName:@"张三" andHobby:@"hk" andAge:21];
    Student *stu2=[Student studentWithName:@"李四" andHobby:@"hjik" andAge:25];
    Student *stu3=[Student studentWithName:@"王五" andHobby:@"fds" andAge:23];
    NSArray *stuArray=[[NSArray alloc]initWithObjects:stu1,stu2,stu3, nil];//创建数组对象并 初始化内容
    int c=[stuArray count];//返回是数组元素个数
    for (int i=0; i
    {
        Student *st=[stuArray objectAtIndex:i];//获取数组相关下表对应的元素
        [st sayHi];
    }
    NSLog(@"%d",[stuArray indexOfObject:stu3]);//indexOfObject是得到所给对象在数组中的下标
 结果是:

  我叫张三,今年21,我的爱好是hk

  我叫李四,今年25,我的爱好是hjik

  我叫王五,今年23,我的爱好是fds

2.查

- containsObject :(id)object  查询是否包含所给对象

3.遍历数组

三种方法:1.in  2.遍历器  3.for

另外,NSArray还有一个非常强大的方法  -makeObjectsPerformSelector () ;这个函数可以将一个操作作用在数组中的每个元素上。例如:

[array  makeObjectsPerformSelector:@selector(get:)] ;

原文地址:https://www.cnblogs.com/kingbo/p/3678387.html