OC中NSArray常用方法总结

//NSArray:


//增加


1.initWithObjects

//原型:

(instancetype)initWithObjects:(id)firstObj,

//初始化数组元素

//例如:

NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];



3. arrayByAddingObject

//原型:

(NSArray*)arrayByAddingObject:(id)anObject;

//在数组后面添加另一个对象

//例如:

NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];

array = [array arrayByAddingObject:@"gggg"];(有溢出,最好使用NSMutableArray)

//返回结果:

aaa 

bbb 

ccc 

gggg


4.arrayByAddingObjectsFromArray

//原型:

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

//把两个数组拼接起来

//例如:

NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];

NSArray *array2 = [[NSArray alloc] initWithObjects:@"ttt", @"ggg", @"mmm", nil];

    array = [array arrayByAddingObjectsFromArray:array2];

//返回结果:

aaa

bbb

ccc

ttt

ggg

mmm






//删除


//修改


//查询


1. count

//原型:

@property (readonly) NSUInteger count;

//求数组长度.

//例如:

NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];

    

NSLog(@"%lu", [array count]);

//返回结果:3


2. objectAtIndex

//原型:

(id)objectAtIndex:(NSUInteger)index;

//找到第index个元素.

//例如:

NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];

NSLog(@"%@", [array objectAtIndex:2]);

//返回结果:ccc






5. containsObject

//原型:

(BOOL)containsObject:(id)anObject;

//查询一个数组中是否有和你要找得字符串完全相同的

//例如:

NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];

if ([array containsObject:@"bbb"]) {

      NSLog(@"yes");

}

else {

      NSLog(@"no");

}

//返回结果: yes


6.indexOfObject

//原型:

(NSUInteger)indexOfObject:(id)anObject;

//返回要找的字符串对象的下标

//例如:

NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];

NSLog(@"%lu", [array indexOfObject:@"bbb"]);

//返回结果: 1


7. isEqualToArray

//原型:

(BOOL)isEqualToArray:(NSArray *)otherArray;

//比较两个数组(里面所有元素对应位相同)

//例如:

NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];

    NSArray *array2 = [[NSArray alloc] initWithObjects:@"aaa", @"bdb", @"ccc", nil];

NSLog(@"%d", [array isEqualToArray:array2]);

//返回结果: 0



8. @property (nonatomic, readonly) id firstObject NS_AVAILABLE(10_6, 4_0);

//取出数组中第一个对象元素.

//例如:

NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];

NSLog(@"%@", [array firstObject]);

//返回结果:   aaa

9.@property(nonatomic, readonly) id lastObject;

//取出数组中最后一个元素的值

//例如:

NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];

NSLog(@"%@", [array lastObject]);

//返回结果: ccc


10. initWithArray

//原型:

(instancetype)initWithArray:(NSArray *)array;

//用另一个数组初始化一个数组

//例如:

NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];

NSArray *nsa = [[NSArray alloc] initWithArray:array];






//可变的:


//增加


addObject

//原型:

(void)addObject:(id)anObject;

//在数组后面加一个元素.

//例如:NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];

    [array addObject:@"fdf"];

//返回结果:

aaa

bbb

ccc

fdf


insertObject

//原型:

(void)insertObject:(id)anObject atIndex:(NSUInteger)index;

//在某一个位置插入一个元素.

//例如:

NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];

    [array insertObject:@"fdf" atIndex:2];

//返回结果:

aaa

bbb

fdf

ccc




//删除


removeObjectAtIndex

//原型:

(void)removeObjectAtIndex:(NSUInteger)index;

//删除某一个位置的元素


//例如:NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];

[array removeObjectAtIndex:2];


//返回结果:

aaa

bbb


//修改


replaceObjectAtIndex

//原型:

(void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;

//替换某一个位置的元素.

//例如:

NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];

    [array replaceObjectAtIndex:1 withObject:@"miantang"];

//返回结果:

aaa

miantang

ccc


//NSValue


valueWithRange

int a = 10;

    NSNumber *a1 = [[NSNumber alloc] initWithInt:a];

    [array addObject:a1];

    

    //float

    float b = 12.0f;

    NSNumber *b1 = [[NSNumber alloc] initWithFloat:b];

    [array addObject:b1];


    //double

    double c = 22.321;

    NSNumber *c1 = [[NSNumber alloc] initWithDouble:c];

    [array addObject:c1];


    //BOOL

    BOOL d = 1;

    NSNumber *d1 = [[NSNumber alloc] initWithBool:d];

    [array addObject:d1];

    

    //NSRange

    NSRange e = NSMakeRange(2, 3);

    NSValue *e1 = [NSValue valueWithRange:e];

    [array addObject:e1];

printArray(array);

补充:

1.数组中[[NSMutableArray alloc] init];和[[NSMutableArray alloc] initWithCapacity:]的区别:

1initWithCapacity:10并不代表里面的object数量不能大于10.也可以大于10.

2init是在告诉程序,我不知道要放多少object,暂且帮我初始化

3,如果你知道大概要放多少东西,那么最好用initWithCapacity,这个会提高程序内存运用效率。

4,如果你初始化了NSMutableDictionary,并且很长时间不会用到,建议用initWithCapacity:0

2.去掉数组中重复的元素:

如果结果的顺序无所谓,可以用Key Value Coding

NSArray *result = [a valueForKeypath:@"@distinctUnionOfObjects.self"];

如果希望能保持原来的顺序,可以用:

NSArray *orderedResult = [[NSOrderedSet orderedSetWithArray:a] array]






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值