------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
NSArray
/*
NSArray : 不可变数组
NSMutableArray : 可变叔数组
*/
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
//@[]只创建不可变数组
//错误写法
// NSMutableArray *array = @[@"jack",@"rose"];
//
// [array addObject:@"jim"];
NSArray *array = @[@"jack",@"rose"];
NSLog(@"%@",array);
return 0;
}
//可变数组的基本使用
void use3()
{
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"rose",@"jim",nil];
//添加元素
[array addObject:@"jack"];
[array addObject:[[Person alloc] init]];
//删除元素
//删除指定对象
[array removeObject:@"jack"];
[array removeObjectAtIndex:0];
//删除所有元素
[array removeAllObjects];
NSLog(@"%@",array);
NSLog(@"%ld",array.count);
}
//遍历数组
void use2()
{
Person *p = [[Person alloc] init];
NSArray *array = @[p,@"jack",@"rose"];
// for(int i = 0;i < array.count;i++){
// NSLog(@"%@",array[i]);
// }
//id obj 代表着数组中得每一个元素
// int i = 0;
// for(id obj in array)
// {
// //找出obj元素在数组中得位置
// NSUInteger i = [array indexOfObject:obj];
//
// NSLog(@"%ld - %@",i,obj);
//
// if(i == 1)
// {
// break;
// }
// }
//每遍历一个元素,就会调用一次block
//并且当前元素和索引位置当做参数传给block
[array enumerateObjectsUsingBlock:
^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"%ld - %@",idx,obj);
if(idx == 0)
{
//停止遍历
*stop = YES;
}
}];
}
void use()
{
//oc数组不能存放nil值
//oc数组只能存放oc对象,不能存放非oc对象类型,比如int,struct,enum等
//这个array永远是空数组
//NSArray *array = [NSArray array];
//1. NSArray的创建
NSArray *array = [NSArray arrayWithObject:@"jack"];
NSArray *array2 = [NSArray arrayWithObjects:@"jack",@"rose", nil];
//快速创建一个NSArray对象
NSArray *array3 = @[@"jack",@"rose"];
//2. NSArray的多少个元素
NSLog(@"%ld",array3.count);
//3. NSArray中元素的访问
NSLog(@"%@",array3[0]);
}