您的位置:首页 > 职场人生

黑马程序员——Foundation框架—NSArray

2015-11-03 11:05 232 查看
 ——- android培训java培训、期待与您交流! ———-

1、NSArray的基本介绍

1)什么是NSArray?

NSArray是OC中的数组类, 开发中建议尽量使用NSArray替代C语言中的数组

C语言中数组的弊端

int array[4] = {10, 89, 27, 76};

只能存放一种类型的数据.(类型必须一致)

不能很方便地动态添加数组元素、不能很方便地动态删除数组元素(长度固定)

2)NSArray的使用注意

1、只能存放任意OC对象, 并且是有顺序的

2、不能存储非OC对象, 比如int\float\double\char\enum\struct等

3、它是不可变的, 一旦初始化完毕后, 它里面的内容就永远是固定的, 不能删除里面的元素, 也不能再往里面添加元素

2、NSArray创建

NSArray的创建方式

+ (instancetype)array;
+ (instancetype)arrayWithObject:(id)anObject;
+ (instancetype)arrayWithObjects:(id)firstObj, ...;
+ (instancetype)arrayWithArray:(NSArray *)array;
+ (id)arrayWithContentsOfFile:(NSString *)path;
//读取一个xml文件.
+ (id)arrayWithContentsOfURL:(NSURL *)url;
// 读取一个xml文件


2、NSArray的方法使用

#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {

//类方法数组创建
NSArray *array1 = [NSArray arrayWithObject:@"obj"];
NSArray *array2 = [NSArray arrayWithObjects:@"obj1", @"obj2", @"obj3", nil];
NSArray *array3 = [NSArray arrayWithArray:array2];
NSLog(@"array1 :%@", array1);
NSLog(@"array2 :%@", array2);
NSLog(@"array3 :%@", array3);

//实例方法创建数组
NSArray *array4 = [[NSArray alloc] initWithObjects:@"AAA", @"bbb", nil];
NSLog(@"array4 :%@", array4);

//数组个数
NSLog(@"array3 count :%d", [array3 count]);

//访问元素
NSLog(@"obj at index :%@", [array2 objectAtIndex:2]);

//追加(返回新的array对象)
NSArray *array5 = [array3 arrayByAddingObject:@"ccc"];
NSLog(@"array5 :%@", array5);

//根据指定的字符串连接数组元素
NSString *joinString1 = [array5 componentsJoinedByString:@"|"];
NSLog(@"joinString :%@",joinString1);

//是否包含指定对象
NSLog(@"isContains :%d", [array5 containsObject:@"obj2"]);

//查找某个对象所在索引
NSLog(@"indexOfObject :%d",[array5 indexOfObject:@"obj3"]);

//最后一个元素
NSLog(@"lastObejct :%@", [array5 lastObject]);

//遍历数组
for (id element in array5) {
NSLog(@"element :%@", element);
}

//可变数组(期望容量设置为3)
NSMutableArray *mutableArray = [NSMutableArray arrayWithCapacity:3];
//直接添加
[mutableArray addObject:@"aaa"];
[mutableArray addObject:@"eee"];
[mutableArray addObject:@"000"];
NSLog(@"addObject :%@", mutableArray);

//插入元素
[mutableArray insertObject:@"ccc" atIndex:0];
NSLog(@"insertObject :%@", mutableArray);

//移除指定元素
[mutableArray removeObject:@"ccc"];
NSLog(@"removeObject :%@", mutableArray);

//移除指定下标元素
[mutableArray removeObjectAtIndex:0];
NSLog(@"removeObjectAtIndex :%@", mutableArray);

//移除最后一个元素
[mutableArray removeLastObject];
NSLog(@"removeLastObject :%@", mutableArray);

//添加数组
[mutableArray addObjectsFromArray:array5];
NSLog(@"addObjectsFromArray :%@", mutableArray);

//移除指定数组中的内容
[mutableArray removeObjectsInArray:array2];
NSLog(@"removeObjectsInArray :%@", mutableArray);

//指定索引替换对象
[mutableArray replaceObjectAtIndex:0 withObject:@"==="];
NSLog(@"replaceObjectAtIndex :%@", mutableArray);

//删除全部对象

4000
[mutableArray removeAllObjects];
NSLog(@"removeAllObjects :%@", mutableArray);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息