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类型的更多相关文章

  1. [转]一些NSArray,NSDictionary,NSSet相关的算法知识

    iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...

  2. OC学习篇之---Foundation框架中的NSDictionary类以及NSMutableDictionary类

    今天来看一下Foundation框架中的NSDictionary类,NSMutableDictionary类,这个和Java中的Map类很想,OC中叫字典,Java中叫Map,还有字典是无序的,这个和 ...

  3. [翻译] 用 ObjectiveSugar 扩展NSArray NSDictionary NSSet NSNumber

    source - https://github.com/supermarin/ObjectiveSugar Look like a girl, act like a lady, think like ...

  4. 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...

  5. 一些NSArray,NSDictionary,NSSet相关的算法知识

    iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...

  6. Fouandation(NSString ,NSArray,NSDictionary,NSSet) 中常见的理解错误区

    Fouandation 中常见的理解错误区 1.NSString //快速创建(实例和类方法) 存放的地址是 常量区 NSString * string1 = [NSString alloc]init ...

  7. 遍历NSArray, NSDictionary, NSSet的方法总结

    1,for循环读取 NSArray: NSArray *array = /*…*/ ; i<array.count; i++) { id object = array[i]; // do sth ...

  8. Objective-C:Foundation框架-常用类-NSDictionary

    与NSString.NSArray一样,NSDictionary是不可变的,其对应可变类型为NSMutableDictionary.其用法如下: #import <Foundation/Foun ...

  9. [OC Foundation框架 - 8] NSArray排序

    1.派生 voidarrayNew() { NSArray*array = [NSArrayarrayWithObjects:",nil]; NSArray*array2 = [arraya ...

随机推荐

  1. 设计模式 工厂-Factory

    在开始笔记之前先推荐一个网站:http://design-patterns.readthedocs.org/zh_CN/latest/index.html 网站对每一个Pattern都有详尽的解说.并 ...

  2. linux c下mysql编程样例

    /* ============================================================================ Name : mysql1.c Auth ...

  3. 《学习OpenCV》练习题第四章第七题abc

    题外话:一直是打算把这本书的全部课后编程题写完的,中间断了几个月,一直忙于其他事.现在开始补上. 这道题我不清楚我理解的题意是不是正确的,这道题可以练习用OpenCV实现透视变换(可以用于矫正在3维环 ...

  4. Android将ScrollView移动到最底部

    转载地址:http://hi.baidu.com/gaogaf/item/36e8a4c8ac6ba31050505848 scrollTo方法可以调整view的显示位置.在需要的地方调用以下方法即可 ...

  5. 第二百零三天 how can I 坚持

    空虚的有点害怕. 日复一日. 今天做了什么?下班看了个搞笑段子. 上班和刘松聊了一下午,东扯西扯的. 下班玩了两局dota. 想租车去出去玩玩,确实没有什么想去的地方了. 莫巧菲. 哎,未来好可怕啊. ...

  6. Dynamic Method Resolution

    [Dynamic Method Resolution] @dynamic directive 用于声明属性的方法dynamic loading,which tells the compiler tha ...

  7. svn's tree conflict

    [svn's tree conflict] A tree conflict occurs when a developer moved/renamed/deleted a file or folder ...

  8. LeetCode104: Maximum Depth of Binary Tree

    Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...

  9. CreateWaitableTimer和SetWaitableTimer函数(定时器)

    用户感觉到软件的好用,就是可以定时地做一些工作,而不需要人参与进去.比如每天定时地升级病毒库,定时地下载电影,定时地更新游戏里的人物.要想 实现这些功能,就可以使用定时器的API函数CreateWai ...

  10. Jmeter_初步认识随笔

    1. 简介 Apache JMeter是100%纯java桌面应用程序,被设计用来测试客户端/服务器结构的软件(例如web应用程序).它可以用来测试包括基于静态和动态资源程序的性能,例如静态文件,Ja ...