您的位置:首页 > 移动开发 > Objective-C

NSArray&& NSMutableArray使用

2016-01-11 12:43 429 查看
认识数组

1、C的数组用来存储基本类型或者是复合类型的数据。OC的数组是专门用来存储对象的,并且不能用来存储基本数据类型;OC中C数组和OC协同合作

2、C的数组中存的是相同类型的数据。OC的一个数组可以存储多种类的对象,OC数组的每个元素实质是存储一个对象的地址

3、OC的数组分为可变数组和不可变数组,这里的可变是指数组大小和数组中每个元素的顺序可变

一、数组的初始化(创建)

#pragma mark 不可变数组的创建


//1.使用简单粗暴的方式创建一个数组

    NSArray * array1 = @[@"MingGe",@"100",person];

//%@可以打印任何类的对象

//使用NSLog打印对象的时候,其实是打印的这个对象的description返回

    NSLog(@"%@",array1);

//=====使用对象方法初始化数组=====

//创建一个空的数组

    NSArray * array2 = [[NSArray alloc] init];

//使用多个对象来初始化一个数组

    NSArray * array3 = [[NSArray alloc] initWithObjects:@"aaa",@"7",person,@"hello",nil];

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

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

//=====使用类方法初始化数组=======

//创建一个空的数组

    NSArray * array5 = [NSArray array];

//使用不同的对象去初始化一个数组

//nil不能删除

    NSArray * array6 = [NSArray arrayWithObjects:@"yuting",@"111",person, nil];

//使用一个数组去初始化另外一个数组

    NSArray * array7 = [NSArray arrayWithArray:array1];

#pragma mark
可变数组的创建


//===========使用对象方法初始化一个可变数组=======

//创建一个空的可变数组

    NSMutableArray * marray1 = [[NSMutableArray alloc] init];

//使用不同(相同)类的对象初始化一个可变数组

    NSMutableArray * marray2 = [[NSMutableArray alloc] initWithObjects:@"000",@"111",person,@"99", nil];

//使用一个数组去初始化一个可变数组

//将一个不可变数组转化成为一个可变数组

    NSArray * array = @[@"xixi",@"haha",@"hehe"];

    NSMutableArray * marray3 = [[NSMutableArray alloc] initWithArray:array];

二、数组常用方法

通用方法:

1.以一个子串分割返回一个数组

- (NSArray *)componentsSeparatedByString:(NSString *)separator;

2.以字符集分割返回数组character

- (NSArray *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator;

3.用数组拼接成字符串

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

#pragma mark 可变数组专有方法

#pragma mark 增加数组元素

//- (void)addObject:(id)anObject;

    NSMutableArray * marray4 = [NSMutableArray array];

//添加一个数组元素

    [marray4 addObject:@"aaa"];

//将一个数组的每个元素分别添加到可变数组

    [marray4 addObjectsFromArray:array];

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

//在指定位置(下标)储插入一个对象

    [marray4 insertObject:@"111" atIndex:2];

    NSLog(@"%@",marray4);

#pragma mark 删除数组元素

//- (void)removeObject:(id)anObject;

//删除指定对象

    [marray4 removeObject:@"aaa"];

    id object_3 = [marray4 objectAtIndex:3];

    [marray4 removeObject:object_3];

//- (void)removeObjectAtIndex:(NSUInteger)index;

//删除指定下标的数组元素

    [marray4 removeObjectAtIndex:2];

    NSLog(@"%@",marray4);

//- (void)removeAllObjects;

//删除数组的所有元素

    [marray4 removeAllObjects];

#pragma mark 数组的最后一个元素(不可变数组也可以用)

//获取数组最后一个元素

    [marray4 addObject:person];

    id lastObject = [marray4 lastObject];

    NSLog(@"%@",lastObject);

#pragma mark isKindOfClass

//isKindOfClasss:是用来判断一个对象是否是某一个类的对象

//判断lastObject是不是NSString的对象

    if ([lastObject isKindOfClass:[NSString class]]) {

        NSLog(@"字符串:%@",lastObject);

    }

    if ([lastObject isKindOfClass:[YTPerson class]]) {

        NSLog(@"人:%@",lastObject);

    }

#pragma mark 数组元素替换

//替换指定下标元素

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

    [marray4 replaceObjectAtIndex:0 withObject:@"000"];

#pragma mark 交换两个数组元素

//- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2;

//交换两个指定下标的数组元素

    [marray4 exchangeObjectAtIndex:1 withObjectAtIndex:5];

    NSLog(@"%@",marray4);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios objective-c NSArray