码迷,mamicode.com
首页 > 其他好文 > 详细

Foundation框架-集合

时间:2014-12-18 01:27:44      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   io   color   os   使用   sp   for   

一.基本概念

OC集合类包括NSArray,NSSet,NSDictionary都是以面向对象的方式操作数组,而且OC数组不像C语言中的数组只能存放同一种数据类型,它可以存放任意类型的对象,但是不能存放非OC对象类型如基本数据类型int,struct,enum等。

二.数组

      1、NSArray,不可变数组。

      2、可以存放多个对象。

      3、实例化的时候以nil表示结束。

      4、通过下标索引对象。

      5、NSArray无法添加、删除、修改元素。  

 1 /*
 2      1.NSArray的创建
 3      */
 4     NSArray *array2 = [NSArray arrayWithObject:@"jack"];
 5     
 6     // nil是数组元素结束的标记
 7     NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil];
 8     // [array2 count];
 9     
10     //NSArray *array4 = [NSArray arrayWithObjects:@"jack", @"rose", @"4324324", nil];
11     
12     // 快速创建一个NSArray对象
13     NSArray *array4 = @[@"jack", @"rose", @"4324324"];
14     
15     
16     /*
17      2.NSArray的元素个数
18      */
19     NSLog(@"%ld", array3.count);
20     
21     
22     /*
23      3.NSArray中元素的访问
24      */
25     NSLog(@"%@", [array3 objectAtIndex:1]);
26     
27     //array3[1];
28     NSLog(@"%@", array3[0]);

三.可变数组

      1、NSMutableArray可变数组,是NSArray的子类

      2、相比NSArray增加了添加、删除、修改功能 

 1 NSMutableArray *array = [NSMutableArray arrayWithObjects:@"rose", @"jim", nil];
 2     
 3     // 添加元素
 4     [array addObject:[[Person alloc] init]];
 5     
 6     [array addObject:@"jack"];
 7     
 8     // 删除元素
 9     //[array removeAllObjects];
10     // 删除指定的对象
11     // [array removeObject:@"jack"];
12     [array removeObjectAtIndex:0];
13     
14     // 错误写法
15     // [array addObject:nil];
16     
17     
18     NSLog(@"%@", array);
19     
20     NSLog(@"%ld", array.count);

四.字典

      1、NSDictionary,不可变字典

      2、存放多个键值对(key-value)

      3、最后以nil结束

      4、字典中的对象存储没有顺序,使用key来索引每个对象

      5、NSDictionary不可以添加、删除、修改元素

 1    // 通过值/键的方式来创建
 2 
 3     NSDictionary *dic4 = [NSDictionary dictionaryWithObjectsAndKeys:
 4 
 5                           @"Jack",@"name",
 6 
 7                           @"北京",@"address",
 8 
 9                           @"jack@163.com",@"e-mail",nil];
10 
11    // 类似于数组的创建方式
12 
13     NSDictionary *dic5 = @{@"name":@"Jack",
14 
15                            @"address":@"北京",
16 
17                            @"e-mail":@"jack@163.com"};
18 
19     // 取值:根据相应的Key取出对应的值
20 
21     NSString *name = [dic1 objectForKey:@"name"];// 返回 Jack
22 
23     // 返回键值对的个数
24 
25     NSUInteger count = dic5.count; // 返回 4

五.可变字典

NSMutableDictionary可变字符串,是NSDictionary增加了添加、删除、修改方法

 1    //创建可变字典
 2 
 3     NSMutableDictionary *mutableDic = [NSMutableDictionary dictionary];
 4 
 5     NSMutableDictionary *mutableDic2 =@{@"name",@"Rose",@"address",@"北京"}; //错误的写法因为右边返回的是不可变的字典
 6      
 7     //为可变字典添加元素
 8 
 9     [mutableDic setObject:@"Rose" forKey:@"name"];
10 
11     [mutableDic setObject:@"北京"forKey:@"address"];
12 
13     //移除
14 
15     [mutableDic removeAllObjects];
16 
17     [mutableDic removeObjectForKey:@"name"];
18 
19      
20     //打印
21 
22     NSLog(@"%@",mutableDic);

六.集合

       1、NSSet,不可变集合

       2、可以存放多个对象

       3、以nil表示结束

       4、对象在set中存储是无序的

       5、对象在set中存储是无序的

       6、不可以添加、删除、修改元素     

 1     //创建NSSet集合:
 2      
 3     NSSet *set = [NSSet set]; // 一旦创建为空永远为空
 4 
 5     NSSet *set2 = [NSSet setWithObjects:@"Jack",@"Rose",@"Jim",nil];
 6 
 7     // 随机获取NSSet集合中的元素
 8 
 9     NSString *str = [set2 anyObject];
10 
11     NSLog(@"%@",str);

 

Foundation框架-集合

标签:style   blog   ar   io   color   os   使用   sp   for   

原文地址:http://www.cnblogs.com/cwhking/p/4170766.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!