「Foundation」集合
一、NSArray和NSMutableArray
(一)NSArray不可变数组
(1)NSArray的基本介绍
NSArray是OC中使用的数组,是面向对象的,以面向对象的形式操纵对象,是不可变数组。
C语言数组有一个缺点即数组中只能存放同种数据类型的元素。
OC数组只能存放OC对象,不能存放非OC对象,如int,结构体和枚举等。
(2)NSArray的创建

(3)NSArray的访问

(4)NSArray的遍历
数组的遍历有以下几种方式:
首先创建一个数组

方法一:使用for循环遍历

方法二:快速遍历

方法三:使用block遍历

block遍历的深入研究:

每拿到一个元素,就传递给obj,就会调用一次block,并且把当前的元素和索引位置当做参数传递给block。
注意1:break只使用在两种场合,即switch和循环结构中。
注意2:stop参数用来停止遍历,其值若为YES,则停止。
(二)NSMutableArray可变数组
(1)NSMutableArray的基本使用
注意:NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法。

二、NSSet和NSMutableSet
(一)NSSet不可变集合
基本使用:

(二)NSMutableSet可变集合
基本使用:

(三)NSSet和NSArray的对比
(1)共同点:
1)都是集合,都能够存放多个对象
2)只能存放oc对象,不能存放非oc对象类型(如int等基本数据类型和结构体,枚举等)。
3)本身都不可变,都有一个可变的子类。
(2)不同点:
1)NSArray有顺序,NSSet没有顺序
三、NSDictionary和NSMutableDictionary
(一)NSDictionary不可变字典
(1)介绍
现实中的字典:根据索引找到具体的内容
OC中的NSDictionary:根据key找到value。里面存储的东西都是键值对。
(2)NSDictionary的创建

注意:快速创建字典是编译器特性。
(3)NSDictionary的访问

(4)NSDictionary的遍历

(二)NSMutableDictionary可变字典
(1)NSMutableDictionary的基本使用

(2)NSMutableDictionary的使用注意

注意:这种快速创建的方式只适用于不可变字典。
四、Foundation练习
计算代码行数:


「Foundation」集合的更多相关文章
- 「 深入浅出 」集合Map
系列文章: 「 深入浅出 」java集合Collection和Map 「 深入浅出 」集合List 「 深入浅出 」集合Set 前面已经介绍完了Collection接口下的集合实现类,今天我们来介绍M ...
- 「 深入浅出 」集合Set
系列文章 「 深入浅出 」集合List 「 深入浅出 」java集合Collection和Map Set继承自Collection接口,不能包含有重复元素.本篇文章主要讲Set中三个比较重要的实现类: ...
- 「BZOJ2839」集合计数
「BZOJ2839」集合计数 题目大意: 一个包含 \(n\) 个数的集合有 \(2^n\) 个子集,从这些子集中取出若干个集合(至少一个),使他们的交集的元素个数恰好为 \(k\),求方案数,答案对 ...
- 「 深入浅出 」集合List
第一篇文章 「 深入浅出 」java集合Collection和Map 主要讲了对集合的整体介绍,本篇文章主要讲List相对于Collection新增的一些重要功能以及其重要子类ArrayList.Li ...
- 「Foundation」字符串
一.Foundation框架中一些常用的类 字符串型: NSString:不可变字符串 NSMutableString:可变字符串 集合型: 1)NSArray:OC不可变数组 NSMutableA ...
- 「Foundation」结构体
一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文 ...
- Loj #3096. 「SNOI2019」数论
Loj #3096. 「SNOI2019」数论 题目描述 给出正整数 \(P, Q, T\),大小为 \(n\) 的整数集 \(A\) 和大小为 \(m\) 的整数集 \(B\),请你求出: \[ \ ...
- Loj #2542. 「PKUWC2018」随机游走
Loj #2542. 「PKUWC2018」随机游走 题目描述 给定一棵 \(n\) 个结点的树,你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(Q\) 次询问,每次 ...
- Loj #3055. 「HNOI2019」JOJO
Loj #3055. 「HNOI2019」JOJO JOJO 的奇幻冒险是一部非常火的漫画.漫画中的男主角经常喜欢连续喊很多的「欧拉」或者「木大」. 为了防止字太多挡住漫画内容,现在打算在新的漫画中用 ...
随机推荐
- sqlplus命令手册
show errorshow allshow usersqlplus show和set命令是两条用于维护SQLPlus系统变量的命令 : SQL> show all --查看所有系统变量值 SQ ...
- SQL Server 多表删除
第一步: 建表 create table t1(x int, y int); create table t2(x int, y int); go insert into t1(x,y) values( ...
- linux系统巡检脚本shell实例
#!/bin/sh BACKUP_TIMESTAMP=`date +%Y%m%d` HOSTNAME=`hostname` num=89 ###################核查文件系统opt### ...
- 脑波设备mindwave二次开发框架
神念科技提供的mindwave提供了脑波耳机和相应的游戏,这些游戏你可以通过购买神念科技的mindwave耳机来获取,这里不多作介绍. 我们作为程序员,如果有了相应的创意,也可以通过他们提供的二次开发 ...
- DAL – RDBMS 的分区
编辑人员注释:本文章由AzureCAT 云与企业工程组的高级项目经理Shaun Tinline-Jones 和Chris Clayton 共同撰写. "云服务基础"应用程序也称作& ...
- linux c in common use function reference manual
End User License Agreement guarantees or warranties,大战前得磨刀!!!!! Tips:C Funcs Chk header Modules!
- 时尚B2B方兴未艾-Maker’s Row 获100万美元种子投资 |华丽志
时尚B2B方兴未艾-Maker's Row 获100万美元种子投资 |华丽志 华丽志 » 网internet, 时尚B2B方兴未艾-Maker's Row 获100万美元种子投资 由 luxeco 发 ...
- Java图形化界面设计——布局管理器之CardLayout(卡片布局)
- Good Luck in CET-4 Everybody!(博弈)
Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- linux下curl编程
LibCurl是免费的客户端URL传输库,支持FTP,FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE ,LDAP等协议,其主页是http: ...