NSArray类方法整理


//**************************创 建****************************

NSInteger len1 = [arr11 count];

NSArray *array1 = @[@"qian",@"feng",@"world"];      //oc2.0版本新增方法

NSArray *array2 = [[NSArray alloc] initWithArray:array1];

NSArray *array3 = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];

NSArray *array5 = [NSArray arrayWithArray:array4];

//以定义的字符串整体进行分割

NSArray *arr1 = [str componentsSeparatedByString:@" "]; 

//将字符串按照指定的分隔符组合成数组

NSArray *arr2 = [str componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@":"]]; 




//*****************************添加元素*********************************

//添加对象到现有数组末尾

//(NSArray *)arrayByAddingObject:(id)anObject;

NSArray *array1 = [array arrayByAddingObject:@"Six”];


//添加另一个数组到当前数组的末尾

//(NSArray *)arrayByAddingObjectsFromArray:(NSArray *)otherArray;

NSArray* array2 = [array arrayByAddingObjectsFromArray:subArray];



//*****************************转换成字符串*********************************

//以传入字符串拼接数组

//(NSString *)componentsJoinedByString:(NSString *)separator;

NSString *str = [array componentsJoinedByString:@"-"];




//*****************************查 找*********************************

//从数组中查找指定的对象,返回指定对象在数组中第一次出现的位置

NSInteger index = [array5 indexOfObject:@"three”];


//按照给定的范围查找对象,返回对象位置

//(NSUInteger)indexOfObject:(id)anObject inRange:(NSRange)range;

NSLog(@"ret = %lu",[array indexOfObject:@"Three" inRange:NSMakeRange(1, 3)]);




//*****************************比 较*********************************

//判断是否包含指定对象(大小写敏感)

//(BOOL)containsObject:(id)anObject;

NSLog(@"ret = %d",[array containsObject:@"One"]);


//判断两个数组是否有一个相同的成员(找到第一次公共的对象)

//(id)firstObjectCommonWithArray:(NSArray *)otherArray;

NSLog(@"first = %@",[array firstObjectCommonWithArray:array2]);


//判断两个数组是否相同

//(BOOL)isEqualToArray:(NSArray *)otherArray;





//*****************************截 取*********************************

//获取数组中某个指定对象

id obj = nil;

obj = [array5 objectAtIndex:3];


//返回数组中第一个对象

firstObject:


//返回数组中最后一个对象

lastObject:


//传递指定范围获取相应的对象

//(NSArray *)subarrayWithRange:(NSRange)range;

NSArray *subArray1 = [array subarrayWithRange:NSMakeRange(2,3)];


//定义一个缓冲区把range中传递的索引号对应的对象取出来放入缓冲区

//从给定的数组中拷贝指定范围内的数组到指定的缓冲区中

//(void)getObjects:(id __unsafe_unretained [])objects range:(NSRange)range;

NSArray *mArray = @[@"One",@"Two",@"Three",@"Four",@"Five",@"Six"];

id __unsafe_unretained *objects;

NSRange range = NSMakeRange(24);

objects = (id __unsafe_unretained *)malloc(sizeof(id) * range.length);

[mArray getObjects:objects range:range];

for (int i = 0; i < range.length; i++) {

    NSLog(@"objects: %@", objects[i]);

}

free(objects);






//*****************************遍 历*********************************


//NSIndexSet 创建一个集合类对象,

NSIndexSet *inSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(12)] ;

//利用集合对象遍历数组

NSArray *subArray = [array5 objectsAtIndexes:inSet];

NSLog(@"subArray=%@",subArray);


//方法1:枚举器法

//正序枚举器

NSEnumerator *enume = [array5 objectEnumerator];

id obj1 = nil;

while (obj1 = [enume nextObject]) {

     NSLog(@"obj=%@",obj1);

}

//倒序枚举器

NSEnumerator *enume1 = [array5 reverseObjectEnumerator];

id obj2 = nil;

while (obj2=[enume1 nextObject]) {

   NSLog(@"obj2=%@",obj2);

}

        

//方法2:快速枚举法

for (id obj3 in array5) {

   NSLog(@"obj3=%@",obj3);

}

        

//方法3:索引遍历法

for (int i=0; i<[array5 count];i++ ) {

    NSLog(@"obj4=%@",[array5 objectAtIndex:i]);

}



//*****************************排 序********************************


保存索引字母数组 mutableCopy:将只读数组转换为mutable

_indexArray = [[_resultDict allKeys] mutableCopy];

对数组进行排序(有返回值)

[_indexArray sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {

     return [obj1 compare:obj2];

}];

    

对数组进行排序(没有返回值)

[_indexArray sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {

    return [obj1 compare:obj2];

}];


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值