转载请标明出处:
http://blog.csdn.net/hai_qing_xu_kong/article/details/53585962
本文出自:【顾林海的博客】

前言

NSArray是oc中常用的类,可以保存一组指向其他对象的指针。

实例

#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {@autoreleasepool {// insert code here...NSString *strFirst=@"hello";NSString *strSecond=@"Object-C";NSString *strThree=@"AAAA";NSArray *strList=@[strFirst,strSecond,strThree];NSLog(@"strList[0] : %@",strList[0]);}return 0;
}

NSArray也可以用字面量语法来创建实例。数组的内容写在方括号里,使用逗号分隔,前方带@符号。NSArray中的指针是有序排列的,并可以通过相应的索引来存取。索引以0为起始。

NSArray的实例是无法改变的,一旦NSArray实例被创建后,就无法添加或删除数组里的指针,也无法改变数组的指针顺序。

遍历数组

#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {@autoreleasepool {// insert code here...NSString *strFirst=@"hello";NSString *strSecond=@"Object-C";NSString *strThree=@"AAAA";NSArray *strList=@[strFirst,strSecond,strThree];NSUInteger listLength=[strList count];for(int i=0;i<listLength;i++){NSLog(@"strList[%d] : %@",i,strList[i]);}}return 0;
}

遍历数组可以使用for循环来遍历。除了使用这种常规的遍历方法,我们还可以使用快速枚举的方式来遍历:

#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {@autoreleasepool {// insert code here...NSString *strFirst=@"hello";NSString *strSecond=@"Object-C";NSString *strThree=@"AAAA";NSArray *strList=@[strFirst,strSecond,strThree];for(NSString *str in strList){NSLog(@"%@",str);}}return 0;
}

NSMutableArray

NSMutableArray实例和NSArray实例类似,但是可以添加、删除或对指针重新进行排序。

#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {@autoreleasepool {// insert code here...NSString *strFirst=@"hello";NSString *strSecond=@"Object-C";NSString *strThree=@"AAAA";NSMutableArray *mutableArray=[NSMutableArray array];//添加两个NSString对象[mutableArray addObject:strFirst];[mutableArray addObject:strSecond];//将strThree指针插入到数组的起始位置[mutableArray insertObject:strThree atIndex:0];for(NSString *str in mutableArray){NSLog(@"%@",str);}//删除strThree指针[mutableArray removeObjectAtIndex:0];NSLog(@"%@",mutableArray[0]);}return 0;
}输出结果:AAAA
hello
Object-C
hello

注意:使用快速枚举遍历NSMutableArray时,不能在枚举过程中增加或删除数组中的指针。如果遍历时需要添加或删除指针,则需要使用标准的for循环。

IOS开发笔记14-NSArray的使用相关推荐

  1. iOS开发笔记-两种单例模式的写法

    iOS开发笔记-两种单例模式的写法 单例模式是开发中最常用的写法之一,iOS的单例模式有两种官方写法,如下: 不使用GCD #import "ServiceManager.h"st ...

  2. iOS开发中对NSArray或者NSMutableArray中的内容排序

    原文引用至               http://blog.unieagle.net/2012/05/10/ios开发中对nsarray或者nsmutablearray中的内容排序/ NSMuta ...

  3. IOS开发笔记之推广安装(用网页判断是否安装App)

    IOS开发笔记之推广安装(用网页判断是否安装App) 在做App推广的时候,我们经常会用到网页链接下载,亦或是一张二维码,最常见的做法就是将App在iTunes中的下载链接嵌入,当用户扫描或者点击网页 ...

  4. IOS开发笔记(九)——IM聊天工具个人详情页面,自定义tableview的accessaryView

    中山大学数据科学与计算机学院本科生实验报告 (2019年春季学期) 课程名称 IOS开发 任课老师 郑贵锋 年级 16 专业(方向) 软件工程(计算机应用方向) 学号 16340132 姓名 梁颖霖 ...

  5. iOS开发笔记--基于面向协议MVP模式下的软件设计

    传统模式下的开发 MVC MVVM 基于面向协议MVP的介绍 MVP实战开发 说在前面:  相信就算你是个iOS新手也应该听说过MVC的,MVC是构建iOS App的标准模板.随着时间的推移,在iOS ...

  6. IOS开发笔记之常用的第三方库(太多了。)

    图像: 1.图片浏览控件MWPhotoBrowser  实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. ...

  7. iOS开发笔记--iOS应用架构谈 view层的组织和调用方案

    前言 <iOS应用架构谈 开篇>出来之后,很多人来催我赶紧出第二篇.这一篇文章出得相当艰难,因为公司里的破事儿特别多,我自己又有点私事儿,以至于能用来写博客的时间不够充分. 现在好啦,第二 ...

  8. IOS开发笔记2-C语言基础复习

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53439812 本文出自:[顾林海的博客] 前言 在正式进入ios开发前 ...

  9. IOS开发笔记1-写一个hello world!程序

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53227222 本文出自:[顾林海的博客] 序言 从今天开始正式踏上io ...

最新文章

  1. [Head First设计模式]餐馆中的设计模式——命令模式
  2. 有三个输入的自监督网络设计
  3. 20201028 《计算感知》第4节课 笔记
  4. JDK8的JVM优化实操及部分原理加深理解
  5. 记一次详细的的SQL查询经历,group by慢查询优化
  6. ARM中的RO、RW和ZI DATA说明
  7. Android Material Design调色板
  8. HDU 1576 A/B 扩展欧几里德算法
  9. MySQL数据操作与查询笔记 • 【第6章 聚合函数和分组查询】
  10. 王者战力查询接口(免费)
  11. linux系统部署ffmpeg视频转码环境及使用方法
  12. 不要嫌我啰嗦~继续话痨python
  13. 群体结构分析:用 phylip 构建进化树
  14. php7 libevent扩展,php7下安装event扩展方法
  15. Java并发包:ExecutorService和ThreadPoolExecutor
  16. 离谱,还有这种自暴自弃的翻译?
  17. ettercap的使用帮助文档 官方man page的个人理解
  18. 02-JVM、JRE、JDK
  19. vscode去掉markdown转pdf时的页眉和页脚
  20. Photoshop合并多个图片为PDF格式文件的(PDF文件编辑删除页面及合并的操作方法)解决方案

热门文章

  1. python写端口扫描器_使用Python编写简单的端口扫描器的实例分享
  2. Android 哥哥福利
  3. 谁动了我的主机? 之活用History命令|Linux安全运维
  4. inventor应用程序错误---解决方法
  5. Node.js 体验-在Windows Azure工作者角色上托管Node.js
  6. [Tip: iShare Site] Move file/folder on iShare Site
  7. CF232C Doe Graphs
  8. MyBatis01 Idea中搭建MyBatis开发环境
  9. Error: Cannot find module 'babel-runtime/regenerator'
  10. [异常解决] How make ubuntu use Google Search