NSArray类

作者:追风剑情 发布于:2019-3-1 12:17 分类:Objective-C

NSArray是不可变数组,数组中的元素必须是同一种类型。

常用的NSArray方法
方法 描述
+(instancetype) arrayWithObjects: obj1,obj2,...nil 创建一个新数组,obj1,obj2,...是其元素
-(BOOL) containsObject: obj 确定数组中是否包含对象obj(使用isEqual:方法)
-(NSUInteger) count 数组中元素的个数
-(NSUInteger) indexOfObject: obj 第一个包含对象obj的元素索引号(使用isEqual:方法)
-(NSUInteger) indexOfObjectPassingTest: (BOOL(^)(id obj, NSUInteger idx, BOOL *stop)) block 传递每个对象obj(带有索引号idx)到区块block中,如果obj通过测试返回YES,未通过返回NO,设置变量指针stop为YES结束处理
-(id) lastObject 返回数组最后的对象
-(id) objectAtIndex: i 存储在元素i的对象
-(void) makeObjectsPerform Selector: (SEL) selector 将selector指示的消息发送给数组中的每个元素
-(void) enumerateObjectsUsingBlock: (void(^)(id obj, NSUInteger idx, BOOL *stop)) block 通过块获取数组中的每个元素,包括对象obj和对应的索引号idx,只有当所有的元素都遍历完成或设置变量指针stop为YES才处理结束
-(NSArray *) sortedArrayUsingSelector: (SEL) selector 根据指定selector方法的比较器对数组进行排序
-(NSArray *) sortedArrayUsingComparator: (NSComparator) block

通过执行区块block对数组进行排序

-(BOOL) writeToFile: path atomically:(BOOL) flag 将数组写入指定的文件中,如果flag为YES,则先创建一个临时文件

示例一:

  1. #import <Foundation/Foundation.h>
  2.  
  3. int main(int argc, const char * argv[]) {
  4. @autoreleasepool {
  5. int i;
  6. // 创建一个数组饱含月份的名称,最后一个元素必须以nil结尾
  7. NSArray *monthNames = [NSArray arrayWithObjects:
  8. @"January", @"February", @"March",
  9. @"April", @"May", @"june", @"July",
  10. @"August", @"September", @"October",
  11. @"November", @"December", nil];
  12. // 列出数组中所有的元素
  13. NSLog(@"Month Name");
  14. NSLog(@"===== =====");
  15. for (i = 0; i < 12; ++i)
  16. NSLog(@" %2i %@", i + 1, [monthNames objectAtIndex: i]);
  17. }
  18. return 0;
  19. }

运行测试
111.png

示例二:重写示例一

  1. #import <Foundation/Foundation.h>
  2.  
  3. int main(int argc, const char * argv[]) {
  4. @autoreleasepool {
  5. int i;
  6. // 创建一个数组饱含月份的名称
  7. NSArray *monthNames = @[@"January", @"February", @"March",
  8. @"April", @"May", @"june", @"July",
  9. @"August", @"September", @"October",
  10. @"November", @"December"];
  11. // 列出数组中所有的元素
  12. NSLog(@"Month Name");
  13. NSLog(@"===== =====");
  14. for (i = 0; i < 12; ++i)
  15. NSLog(@" %2i %@", i + 1, monthNames[i]);
  16. }
  17. return 0;
  18. }



标签: Objective-C

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号