OC--Foundation 框架(2)

来源:互联网 发布:软件开发相关职位 编辑:程序博客网 时间:2024/05/19 13:43

Foundation 集合类

OC集合类
NSArray,NSSet,NSDictionary是面向对象的方式操作数组,OC数组可以存放OC对象,不能存放非OC对象类型如:int ,struc,enum等
NSArray 不可变数组的常用方法
···初始化

/这种方式创建出来的数组永远为空,
1)NSArray *array = [NSArray array];
//快速创建 (只可以用于不可变的数组)

2)NSArray *array1 = @[@”jack”,@”jim”];
//数组中不可以放空对象,因为nil是用来标识数组元素结束的标识,

3)NSArray *array2 = [NSArray arrayWithObjects:@”jack”,@”anny”,nil]

···使用方法:
1) //通过索引来调用:NSString *str1 = [array2 objectAtIndex:1];
2) //通过编译器特性调用:NSString *str2 = array[1];

NSArray 的遍历
1>快速遍历
for(id obj in array2)
{
// 获取obj对象在数组中的索引
NSUInteger index = [array2 indexOfObject:obj];
NSLog(@”%ld—%@”,index,obj)
}

2>使用Block 来遍历

[array2 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)

{
NSLog(@”%ld–%@”,idx,obj);
// 利用索引来控制打印的个数
if (idx ==0)
{
// 注意是*stop 不是stop
*stop = YES;
}
};

二、 NSMutableArray 可变数组的常用使用方法

···初始化

NSMutableArray a = @[@”jack”,@”anny”];
//错误写法:NSMutableArray继承了NSArray 也就拥有NSArray中的方法,但是不可以使用快速创建,因为返回值不匹配。

// 可变数组可以创建出初始值为空的数组
NSMutableArray array = [NSMutableArray array];

//创建NSMutableAyyay 里面拥有两个OC对象
NSMutavleArray array1= [NSMutableArray arrayWithObjects:@”jack”,@”anny”,nul];

NSMutableAyyay 常用方法
//添加元素
[array1 addObject:@”tom”];

//删除全部元素
[arrya1 removeALLObjects];

//删除指定元素
1)[array1 removeObject:@”tom”];
//根据索引删除
2)[array1 removeObjectAtIndex:2];

三、NSSet 不可变集合
NSSet和NSArray有相似之处,都是存储不同的对象的地址;不过NSArray是有序的集合,NSSet是无序的集合。

NSSet的优点:查找集合中的元素比NSArray数组速度更快
NSSet的缺点:没有顺序

···初始化
1) NSSet *set = [NSSet set]; // 一旦创建为空永远为空
2)NSSet *set1 =
[NSSet setWithObjects:@”Jack”,@”anny”,nil];

···使用方法
//返回集合中对象的个数
[set count];
//判断集合中是否拥有某个元素
BOOL ret = [set containsObject:@”anny”];
//通过数组来初始化集合(数组转换为集合)
NSSet * set = [[NSSet alloc] initWithArray:array];
// 集合转换为数组
NSArray * array2 = [set allObjects];

四、NSMutableSet 可变集合

···初始化
1)NSMutableSet * set = [[NSMutableSet alloc] init];
2)NSMutableSet * set2 =
[NSMutableSet MubleSetWithObjects:@”jack”,@”anny”,nil]

···使用方法
//添加元素
[set2 addObject:@”tam”];

//删除元素
[set2 removeObject:@”jack”];
[set removeAllObjects];

0 0
原创粉丝点击