一、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」集合的更多相关文章

  1. 「 深入浅出 」集合Map

    系列文章: 「 深入浅出 」java集合Collection和Map 「 深入浅出 」集合List 「 深入浅出 」集合Set 前面已经介绍完了Collection接口下的集合实现类,今天我们来介绍M ...

  2. 「 深入浅出 」集合Set

    系列文章 「 深入浅出 」集合List 「 深入浅出 」java集合Collection和Map Set继承自Collection接口,不能包含有重复元素.本篇文章主要讲Set中三个比较重要的实现类: ...

  3. 「BZOJ2839」集合计数

    「BZOJ2839」集合计数 题目大意: 一个包含 \(n\) 个数的集合有 \(2^n\) 个子集,从这些子集中取出若干个集合(至少一个),使他们的交集的元素个数恰好为 \(k\),求方案数,答案对 ...

  4. 「 深入浅出 」集合List

    第一篇文章 「 深入浅出 」java集合Collection和Map 主要讲了对集合的整体介绍,本篇文章主要讲List相对于Collection新增的一些重要功能以及其重要子类ArrayList.Li ...

  5. 「Foundation」字符串

    一.Foundation框架中一些常用的类 字符串型: NSString:不可变字符串 NSMutableString:可变字符串 集合型: 1)NSArray:OC不可变数组  NSMutableA ...

  6. 「Foundation」结构体

    一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文 ...

  7. Loj #3096. 「SNOI2019」数论

    Loj #3096. 「SNOI2019」数论 题目描述 给出正整数 \(P, Q, T\),大小为 \(n\) 的整数集 \(A\) 和大小为 \(m\) 的整数集 \(B\),请你求出: \[ \ ...

  8. Loj #2542. 「PKUWC2018」随机游走

    Loj #2542. 「PKUWC2018」随机游走 题目描述 给定一棵 \(n\) 个结点的树,你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(Q\) 次询问,每次 ...

  9. Loj #3055. 「HNOI2019」JOJO

    Loj #3055. 「HNOI2019」JOJO JOJO 的奇幻冒险是一部非常火的漫画.漫画中的男主角经常喜欢连续喊很多的「欧拉」或者「木大」. 为了防止字太多挡住漫画内容,现在打算在新的漫画中用 ...

随机推荐

  1. NET Core MVC 在linux上的创建及发布

    NET Core MVC 在linux上的创建及发布 前言 ASP.NET core转眼都发布半月多了,社区最近也是非常活跃,虽然最近从事python工作,但也一直对.NET念念不忘,看过了园区大神们 ...

  2. PCB成型製程介紹

    PCB成型製程在電子構裝中所扮演的角色 下圖是電腦主機的內部組成 我們將以插在主機板上的一片 USB擴充卡來說明PCB成型製 程在電子構裝中所扮演的角色 PCB成型製程的子製程 USB擴充卡要插入主機 ...

  3. Android利用广播监听设备安装和卸载应用程序

    MainActivity如下: package cn.testappaddandremove; import android.os.Bundle; import android.app.Activit ...

  4. rails总结

    rails总结 注意:本文档以rails3.2版本为基础,并且用RubyMine 4.0.3作为ide 一.rails的结构与重要文件 Rails 是一个MVC库.同时,Rails的特点就是:惯用名优 ...

  5. 脑波设备mindwaveTGC接口示例

    TGC是一个后台应用程序,它负责和脑波设备建立连接,并获取数据,另一方面,它打开了一个端口在监听,让二次开发的应用程序,可以通过socket连接到这个TGC后台程序,获取脑波数据并展示,这种接口适合非 ...

  6. POJ 1222 EXTENDED LIGHTS OUT(高斯消元)

    [题目链接] http://poj.org/problem?id=1222 [题目大意] 给出一个6*5的矩阵,由0和1构成,要求将其全部变成0,每个格子和周围的四个格子联动,就是说,如果一个格子变了 ...

  7. 夜未央Test1题解

    T1 积木游戏              树状数组的一个简单应用,建立一个维护左节点的树状数组和一个维护右节点的树状数组,对于add操作,只要在维护左节点的树状数组l处加1,维护右节点的树状数组r处加 ...

  8. linux下卸载安装程序及其配置的方法

    首先要知道软件包的名字 dpkg --list 如果知道关键字的话可以用下面这种方法 dpkg --list|grep -i ‘packagename’ 找到所要删除的软件包之后 sudo apt-g ...

  9. Oracle闪回操作

    Oracle闪回操作 1. 记录当前时间或SCN 在数据库变动前记录时间或SCN SQL> select  to_char(sysdate,'YYYY-MM-DD HH24:mi:ss') fr ...

  10. JavaBean组件在JSP文档中的应用

    Bean: package cn.donghaua.bean; public class StringBean { private String message = "No message ...