下面的例子以 NSArray *array = [NSArray arrayWithObjects:@"wendy",@"andy",@"tom",@"jonery",@"stany", nil];1、获取数组中总共有多少个对象。- (NSUInteger)count; NSLog(@"%d",[array count]); 22、获取数组中下标对应的元素对象.(下标是从0开始)- (id)objectAtIndex:(NSUInteger)index;3、在当前数据中追加一个新的对象,并且返回一个新的数据对象(新的数组对象和被追加的对象,是两个不同的数组对象)。- (NSArray *)arrayByAddingObject:(id)anObject;4、在当前的数组中追加一个新的数据,并且返回一个新的数组对象。- (NSArray *)arrayByAddingObjectsFromArray:(NSArray *)otherArray;5、使用当前的数组生成一个字符串,新生成的字符串使用提供的separator 字符进行分割。- (NSString *)componentsJoinedByString:(NSString *)separator;[array compontsJoinedByString:@","];运行结果: wendy,andy,tom,jonery,stany6、检测数据中是否包含指定的对象元素- (BOOL)containsObject:(id)anObject;[array containsObject:@"tom"]; YES7、使用当前的数组生成字符串。可以重写description 改变生成的字符串。相当于java 中的toString 方法。- (NSString *)description;运行结果 ( wendy, andy, tom, jonery, stany)8、根据设置的locale 进行连接数组- (NSString *)descriptionWithLocale:(id)locale;- (NSString *)descriptionWithLocale:(id)locale indent:(NSUInteger)level;9、两个数组的第一个元素是否相同,如果相同,则返回 数组中,第一个元素的字符串,反之,返回null 对象- (id)firstObjectCommonWithArray:(NSArray *)otherArray;10、 从数组中获取 NSRange 对象的数据存放到objects 中,NSRange 的数据标示从location,开始后面length 个数据- (void)getObjects:(id__unsafe_unretained [])objects range:(NSRange)range;NSArray *array = [NSArray arrayWithObjects:@"wendy",@"andy",@"tom",@"jonery",@"stany",@"张山名称",@"asdta", nil]; NSRange range = NSMakeRange(1, 5); id *objects; objects = malloc(sizeof(id) * range.length); [array getObjects:objects range:range]; for(int i = 0; i < range.length; i++){ NSLog(@"%@",objects[i]); } free(objects); 运行的结果 andytomjonerystany11、 判断制定的anObject 对象是否存在数组中如果存在返回,对象所在的下标- (NSUInteger)indexOfObject:(id)anObject;如果不存在,返回的NSUInteger 与 NSNotFund 相同NSUIndex index = [array indexOfObject:@"stan"];if(index == NSNotFound){对象不在数组中 } 11-1、 判断制定的元素,是否在数组中,数组查询的位置,是从range.location 的位置开始,到range.length 的长度结束。- (NSUInteger)indexOfObject:(id)anObject inRange:(NSRange)range;如果数据存在,返回指定的下标,如果不存在,则返回NSNotFund 。实质是使用isEqual 进行比较12、同上面两个方法一项,测试指定的对象是否在数组中不同的是,这里使用指针进行比较- (NSUInteger)indexOfObjectIdenticalTo:(id)anObject;如果数据存在,返回指定的下标,如果不存在,则返回NSNotFund 。- (NSUInteger)indexOfObjectIdenticalTo:(id)anObject inRange:(NSRange)range;13、比较两个数组是否相同 ,数组长度相同,并且相同位置上的元素也相同。- (BOOL)isEqualToArray:(NSArray *)otherArray;14、返回最有一个元素,如果一个数组的长度为0 返回的对象为nil- (id)lastObject;15、使用数组返回一个 NSEnumerator 对象,这个对象类似与一个指针,可以用来遍历 整个数组 指针从前向后遍历- (NSEnumerator *)objectEnumerator;示例如下 NSEnumerator *enu = [array objectEnumerator]; id *obj; while (obj = enu.nextObject) { NSLog(@"obj===%@==",obj); }16、 返回一个NSEnumerator 对象,这个对象类似一个指针,可以用来遍历真个数据,所不同的是,这个指针,是从后向前遍历。 - (NSEnumerator *)reverseObjectEnumerator;17、生成一个NSData 的对象,主要是用来进行数组的排序。 在下面的方法中使用这个对象- (NSData *)sortedArrayHint;18、 进行数组的排序- (NSArray *)sortedArrayUsingFunction:(NSInteger (*)(id,id, void *))comparator context:(void *)context;这个方法类似苹果实现了一个简单的 排序方法。但是实现的规则需要自己进行处理。类似的方法如下。 首先提供一个 普通的排序算法,函数和c 的方法类似NSInteger sortType(id st,id str,void *cha){ NSString *s1 = (NSString *)st; NSString *s2 = (NSString *)str;if(s1.length > s2.length) { return NSOrderedAscending; }else if(s1.length < s2.length) { return NSOrderedDescending; } return NSOrderedSame;}NSArray *array = [NSArray arrayWithObjects:@"wendy",@"andy",@"tom",@"test", nil]; NSArray *a = [array sortedArrayUsingFunction:sortType context:nil];NSLog(@"a=%@",a);NSArray 为需要排序的数组,返回一个排序完成的数组,再执行osrtedArrayUseingFunction 方法时会,会自动调用上面的sortType 方法,并且,可以按照你的需要调整上面的规则19、和上面的方法类似,也是苹果用来进行排序的。所不同的是,需要传入一个NSData 的数据。- (NSArray *)sortedArrayUsingFunction:(NSInteger (*)(id,id, void *))comparator context:(void *)context hint:(NSData *)hint;NSData *dat = [array sortedArrayHint]; NSArray *a = [array sortedArrayUsingFunction:sortType context:nil hint:dat]; NSLog(@"a=%@",a);
int currentValue;for (int i = 0; i < [arrayOfValues count]; i++){ currentValue = [(NSNumber *)[arrayOfValues objectAtIndex:i] intValue]; NSLog(@"currentValue: %d", currentValue); // EXE_BAD_ACCESS}可以
int currentValue;for (int i = 0; i < [arrayOfValues count]; i++){ currentValue = [(NSNumber *)[arrayOfValues objectAtIndex:i] intValue]; NSLog(@"currentValue: %d", currentValue); // EXE_BAD_ACCESS}可以
NSArray *array=[NSArray arrayWithObjects:@1,@2,nil]; NSLog(@"--->%d",[[array objectAtIndex:1]intValue]); --->2 //intNSLog(@"===>%@",[array objectAtIndex:1]);===>2 //string