黑马程序员-------NSArray(NSMutableArray);
来源:互联网 发布:知乎 代购 吐槽 编辑:程序博客网 时间:2024/05/13 01:25
------- IOS开发、IOS培训、期待与您交流! -------
1、OC数组只能存放OC对象,不能存放非OC对象类型,比如:int、struct、enum等,也不能存放空值,也就是不能存放 nil。
2、/ @[]返回的是NSArray类型,所以快速创建数组的时候要注意,NSMutableArray就不能用@[]
/*---------------------------创建数组------------------------------*/
// nil是OC数组结束的标识
NSArray *array1 = [NSArray arrayWithObject:@"one"];
NSArray *array = [[NSArray alloc] initWithObjects:
@"One",@"Two",@"Three",@"Four",nil];
// 快速创建一个NSArray对象
NSArray *array =@[@"One",@"Two",@"Three",@"Four"];
// 数组所包含对象个数;或者用array.count
NSLog(@"%d",[array count]);
// 获取指定索引处的对象,这里打印的是“Three”,也可以用array[2]来代替
NSLog(@"%@",[array objectAtIndex:2]);
/*-----------------从一个数组拷贝数据到另一数组(可变数组)——————*/
//arrayWithArray:
//NSArray *array1 = [[NSArray alloc] init];
NSMutableArray*MutableArray = [[NSMutableArrayalloc] init];
NSArray*array = [NSArrayarrayWithObjects:
@"a",@"b",@"c",nil];
NSLog(@"array:%@",array);
MutableArray = [NSMutableArrayarrayWithArray:array];
NSLog(@"MutableArray:%@",MutableArray);
array1 = [NSArrayarrayWithArray:array];
NSLog(@"array1:%@",array1);
// 快速遍历
for (id obj in array) {
// 找出obj元素在数组中得位置
NSUInteger i = [array indexOfObject:obj];
NSLog(@"%ld - %@", i, obj);
}
// 利用block来快速遍历
[array enumerateObjectsUsingBlock:
// 每遍历到一个元素,就会调用一次block
// 并且当前元素和索引位置做参数传给block
^(id obj,NSUInteger idx, BOOL *stop) {
NSLog(@"%ld - %@", idx, obj);
if (idx == 0) {
// 停止遍历
*stop =YES;
}
}];
//Copy
//id obj;
NSMutableArray *newArray = [[NSMutableArrayalloc] init];
NSArray*oldArray = [NSArrayarrayWithObjects:
@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];
NSLog(@"oldArray:%@",oldArray);
for(inti = 0; i < [oldArray count]; i++)
{
obj = [[oldArray objectAtIndex:i]copy];
[newArray addObject: obj];
}
//
NSLog(@"newArray:%@", newArray);
[newArray release];
//快速枚举
//NSMutableArray *newArray = [[NSMutableArray alloc] init];
NSArray*oldArray = [NSArrayarrayWithObjects:
@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];
NSLog(@"oldArray:%@",oldArray);
for(idobj in oldArray)
{
[newArray addObject: obj];
}
//
NSLog(@"newArray:%@", newArray);
[newArray release];
//Deep copy
//NSMutableArray *newArray = [[NSMutableArray alloc] init];
NSArray*oldArray = [NSArrayarrayWithObjects:
@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];
NSLog(@"oldArray:%@",oldArray);
newArray = (NSMutableArray*)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (CFPropertyListRef)oldArray, kCFPropertyListMutableContainers);
NSLog(@"newArray:%@", newArray);
[newArray release];
//Copy and sort
//NSMutableArray *newArray = [[NSMutableArray alloc] init];
NSArray*oldArray = [NSArrayarrayWithObjects:
@"b",@"a",@"e",@"d",@"c",@"f",@"h",@"g",nil];
NSLog(@"oldArray:%@",oldArray);
NSEnumerator *enumerator;
enumerator = [oldArray objectEnumerator];
idobj;
while(obj = [enumerator nextObject])
{
[newArray addObject: obj];
}
[newArray sortUsingSelector:@selector(compare:)];
NSLog(@"newArray:%@", newArray);
[newArray release];
/*---------------------------切分数组------------------------------*/
//从字符串分割到数组- componentsSeparatedByString:
NSString*string = [[NSStringalloc] initWithString:@"One,Two,Three,Four"];
NSArray*array = [string componentsSeparatedByString:@","];
NSLog(@"array:%@",array);
//从数组合并元素到字符串- componentsJoinedByString:
NSArray*array = [[NSArrayalloc] initWithObjects:@"One",@"Two",@"Three",@"Four",nil];
NSString*string = [array componentsJoinedByString:@","];
NSLog(@"string:%@",string);
/*******************************************************************************************
NSMutableArray
*******************************************************************************************/
/*---------------给数组分配容量----------------*/
//NSArray *array;
array = [NSMutableArrayarrayWithCapacity:20];
/*--------------在数组末尾添加对象----------------*/
//- (void) addObject: (id) anObject;
//NSMutableArray *array = [NSMutableArray arrayWithObjects:
@"One",@"Two",@"Three",nil];
[array addObject:@"Four"];
NSLog(@"array:%@",array);
/*--------------删除数组中指定索引处对象----------------*/
NSMutableArray *array = [NSMutableArrayarrayWithObjects:@"rose",@"jack", nil];
// 删除所有元素
[array removeAllObjects];
//删除指定对象,两种方法删除 “jack”
[array removeObject:@“jack”];
//如果array中途又增加了几个元素,确定索引来删除 “jack”
NSUInteger i = [array indexOfObject:@"jack"];
[array removeObjectAtIndex:i];
- 黑马程序员-------NSArray(NSMutableArray);
- 03-黑马程序员-NSArray、NSMutableArray
- 黑马程序员 --- NSArray和NSMutableArray的用法
- 黑马程序员 OC语言 - 7 结构体、NSString、NSArray、NSMutableArray
- 黑马程序员---Foundation常用类之NSArray/NSMutableArray
- 黑马程序员——NSArray和NSMutableArray的使用
- 黑马程序员——Foundation学习—-----NSArray和NSMutableArray
- 黑马程序员——Foundation学习之NSArray\NSMutableArray
- 黑马程序员-oc基础-oc中之集合NSArray,NSMutableArray
- 黑马程序员---OC学习笔记之NSArray与NSMutableArray
- 黑马程序员—Foundation框架之NSArray与NSMutableArray
- 【黑马程序员】【Foundation框架】数组NSArray和NSMutableArray
- 【黑马程序员】OC-Foundation框架—NSArray和NSMutableArray
- 黑马程序员——NSArray与NSMutableArray的基本操作总结
- 黑马程序员——Objective-C学习之不可变与可变集合(NSArray\NSMutableArray)
- 黑马程序员——Foundation框架——NSArray和NSMutableArray
- 黑马程序员-IOS学习笔记 Foundation框架下 NSArray的方法 NSMutableArray的一些方法
- 黑马程序员--OC学习篇之Foundation框架中的NSArray对象和NSMutableArray对象
- C++标准库智能指针(std::auto_ptr)
- 门控时钟的使用
- oracle数据库的导入导出
- Linux ipc------System V信号量
- 电动机的飞车问题
- 黑马程序员-------NSArray(NSMutableArray);
- $(document).ready(function (){})和$(function(){})无区别
- ID3算法
- 树的遍历
- Android开发————CoverFlow3D的实现
- spring原拦截器配置与新命名空间mvc:interceptors配置拦截器对比与注意事项
- 中国版Azure最新上线服务
- android控件拖动
- C++运算符优先级表