Foundation框架之NSArray、NSDictionary、NSSet及其Mutable类型
Foundation框架之NSArray、NSDictionary、NSSet及其Mutable类型
目录
- 概述——对Foundation框架集合类的理解
- NSArray
- NSDictionary
- NSSet
- NSArray、NSDictionary和NSSet的Mutable类型
- Foundation框架中集合类的使用详见苹果官方文档
- 集合类的实用操作
深层遍历
深层复制
- 待研究
概述——对Foundation框架集合类的理解
NSArray
创建
NSArray *array = [NSArray arrayWithObjects:@"one",@"two",nil];
NSArray *array2 = @[@"one",@"two"];
访问NSArray中的元素(通过index)
array[index];
[array objectAtIndex:index];
返回NSArray的长度
[array count];
遍历NSArray
for(id obj in array){
NSLog(@"%@",obj);
}
for(int i=0;i<[array count];i++){
NSLog(@"%@",array[i]);
}
NSDictionary
创建
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"key1",object1,@"key2",object2,nil];
NSDictionary *dict2 = @{@"key1":object1,@"key2":object2};
注意:key和value都可以为类对象,不一定都是字符串;
访问NSDictionary中的元素(通过key值)
[dict objectForKey:key];
dict[key];
返回NSDictionary的长度
[dict count];
遍历NSDictionary(key和value都遍历)
for(id key in [dict allKeys]){
NSLog(@"%@",key);
NSLog(@"%@",dict[key]);
}
NSSet
创建
NSSet *set = [NSSet setWithObjects:@"1",@"2",nil];
返回NSSet的长度
[set count];
遍历NSSet
for(id obj in set){
NSLog(@"%@",obj);
}
NSArray、NSDictionary和NSSet的Mutable类型
允许在创建对象之后对对象进行更改(插入和删除)操作
Foundation框架中集合类的使用详见苹果官方文档
集合类的实用操作
深层遍历
实现思路:增加对所包含的集合对象的处理,在此只对NSArray,NSDictionary,NSSet这三种集合类进行处理,如果有新需求可以增加新处理
+ (void)traverseDictionary:(NSDictionary *)dict{
for (id object in [dict allValues]) {
if ([object isKindOfClass:[NSArray class]]) {
[TraverseCollection traverseArray:object];
}
else if ([object isKindOfClass:[NSDictionary class]]){
[TraverseCollection traverseDictionary:object];
}
else if ([object isKindOfClass:[NSSet class]]){
[TraverseCollection traverseSet:object];
}
else{
NSLog(@"%@",object);
}
}
}
深层复制
与深层遍历类似
待研究
Foundation框架之NSArray、NSDictionary、NSSet及其Mutable类型的更多相关文章
- [转]一些NSArray,NSDictionary,NSSet相关的算法知识
iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...
- OC学习篇之---Foundation框架中的NSDictionary类以及NSMutableDictionary类
今天来看一下Foundation框架中的NSDictionary类,NSMutableDictionary类,这个和Java中的Map类很想,OC中叫字典,Java中叫Map,还有字典是无序的,这个和 ...
- [翻译] 用 ObjectiveSugar 扩展NSArray NSDictionary NSSet NSNumber
source - https://github.com/supermarin/ObjectiveSugar Look like a girl, act like a lady, think like ...
- 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...
- 一些NSArray,NSDictionary,NSSet相关的算法知识
iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...
- Fouandation(NSString ,NSArray,NSDictionary,NSSet) 中常见的理解错误区
Fouandation 中常见的理解错误区 1.NSString //快速创建(实例和类方法) 存放的地址是 常量区 NSString * string1 = [NSString alloc]init ...
- 遍历NSArray, NSDictionary, NSSet的方法总结
1,for循环读取 NSArray: NSArray *array = /*…*/ ; i<array.count; i++) { id object = array[i]; // do sth ...
- Objective-C:Foundation框架-常用类-NSDictionary
与NSString.NSArray一样,NSDictionary是不可变的,其对应可变类型为NSMutableDictionary.其用法如下: #import <Foundation/Foun ...
- [OC Foundation框架 - 8] NSArray排序
1.派生 voidarrayNew() { NSArray*array = [NSArrayarrayWithObjects:",nil]; NSArray*array2 = [arraya ...
随机推荐
- DouNet学习_代码生成器
string conn = "Data Source={0};Initial Catalog={1};User Id={2};Password={3}"; //点击链接 priva ...
- CSS width:100%和width:auto的区别
width:100%和width:auto的区别 width:auto比较聪明,如果margin已经左右占去10px的空间,那么width给的值就是580px. <style> div{ ...
- 耳机jack构造及在应用时可能出现的问题
目前市场上耳机分为4环耳机(图1所示,iphone型)和3环耳机(图2所示).4环耳机称为headset,3环耳机称为headphone,两者之间的区别就是4环耳机比3环耳机多个micphone.而J ...
- VBA
1.ActiveWorkbook是Application对象的一个属性,表示的是一个active Workbook. 2.Application对象可以获得一些顶级的对象,比如ActiveCell,A ...
- ef6 code first
http://www.cnblogs.com/Bce-/p/3684643.html http://www.cnblogs.com/Gyoung/tag/Entity%20Framework/ htt ...
- 解析XtraBackup备份MySQL的原理和过程(转)
原文:http://ourlinux.blog.51cto.com/274624/844859 XtraBackup是percona公司提供的开源工具,以热备Innodb表著称而被广泛采用. Xtra ...
- Rdlc报表出现空白页解决方法
在使用RDLC报表时,碰到这种情况:当只有一页数据时,报表确显示两页,第二页除了报表头之外数据为空.然后,当有多页数据时,最后一页为空. RDLC報表設計好後,在ReportViewer預覽報表時,頁 ...
- POJ 2826 An Easy Problem?!
An Easy Problem?! Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7837 Accepted: 1145 ...
- KMP(http://acm.hdu.edu.cn/showproblem.php?pid=1711)
http://acm.hdu.edu.cn/showproblem.php?pid=1711 #include<stdio.h> #include<math.h> #inclu ...
- HDU2838Cow Sorting(树状数组)
题目意思是说给你一列数,每次可以将相邻的两个数交换,这一步的代价是这两个数的和,求将所有数排好序的最少代价. 题解: 我们可以这么思考,由于每次都是交换相邻的两个数,所以将一个数放到它自己的位置去后, ...