OC中数组分不可变数组(NSArray)和可变数组(NSMutableArray)。

不可变数组:

 //------------------------------不可变数组----------------------------------

 //    创建一个不可变数组

     NSNumber *number = [NSNumber numberWithInt:];

     NSArray * arr= [NSArray arrayWithObjects:@"china",@"one", @"usa", number, nil];

     NSLog(@"%@",arr);

 //    array.count为数组元素个数

     NSLog(@"%@ \n数组arr元素个数为%lu",arr,(unsigned long)arr.count);

 //  判断数组中是否有某元素

     BOOL yesorno = [arr containsObject:@"usa"];

     NSLog(@"%d",yesorno);

 //  判断数组中是否有某元素方法2

     if ([arr containsObject:@"usa"]) {

         NSLog(@"里面有usa");

     }

 //    寻找某个元素在数组中的位置

     NSInteger indexnow = [arr indexOfObject:@"usa"];

     NSLog(@"%ld",(long)indexnow);

 //    找出最后一个元素

     id lastOut = [arr lastObject];

     NSLog(@"%@",lastOut);

可变数组:

 NSMutableArray *mArray = [NSMutableArray arrayWithObjects:@"one",@"two",@"three",@"four",@"five",@"six",@"seven", nil];
[mArray addObject:@"eight"];//追加一个元素
[mArray insertObject:@"zero" atIndex:];//给指定位置插入一个元素
[mArray removeObjectsInArray:arr]; //数组arr有的元素在mArray中删除
[mArray removeObject:@"three" inRange:NSMakeRange(, mArray.count)];//按照范围删除
[mArray removeLastObject]; //删除最后一个元素
[mArray removeObject:@"six"]; //删除特定元素
[mArray removeObjectAtIndex:]; //按照下标删除
[mArray replaceObjectAtIndex: withObject:@"third"];//按照下标替换元素
[mArray exchangeObjectAtIndex: withObjectAtIndex:];//按照下标交换元素
NSLog(@"%@",mArray);

数组的遍历:

 //------------------------------遍历数组----------------------------------

     NSMutableArray *mArray2 = [NSMutableArray arrayWithObjects:@"one",@"two",@"three",@"four",@"five",@"six",@"seven", nil];

 //    第一种遍历可变数组的方法--快速枚举法
for (id x in mArray2) {
NSLog(@"%@",x);
} // 第二种遍历可变数组的方法--一般循环法
for (int i=; i<mArray2.count; i++) {
NSLog(@"%@",[mArray2 objectAtIndex:i]);
} // 第三种遍历可变数组的方法--使用枚举器遍历
NSEnumerator *enu =[mArray2 objectEnumerator];
id x;
while (x=[enu nextObject]) {
NSLog(@"%@" ,x);
} // 创建数组新写法@[@“”,@“”]
NSArray *array1d = @[@"sdf", @"df" ];
NSLog(@"%@",array1d);

IOS开发-ObjC-NSArray的更多相关文章

  1. iOS开发-NSArray

    忙了一上午,解决了几个bug,现在终于抽出来一点时间喝点水休息下, 想着系列这么浩大的一个工程,才刚刚开始写,不能断了,就跟写小说一样,既然是系列,那么就需要不停更... 好吧. 简单的说说iOS开发 ...

  2. iOS开发系列--打造自己的“美图秀秀”

    --绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...

  3. iOS开发系列--Swift进阶

    概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用S ...

  4. iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总

    --系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...

  5. iOS开发系列--数据存取

    概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库.例如前面IOS开发系列-Objective-C之Foundation框架的文章中提到归档.plist文件存储, ...

  6. iOS开发系列--网络开发

    概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力 ...

  7. iOS开发系列--无限循环的图片浏览器

    --UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件 ...

  8. IOS开发基础知识碎片-导航

    1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...

  9. iOS开发系列—Objective-C之Foundation框架

    概述 我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NSObject,那么这个对象到底 ...

  10. IOS开发之自动布局显示网络请求内容

    在上一篇博客中详细的介绍了IOS开发中的相对布局和绝对布局,随着手机屏幕尺寸的改变,在App开发中为了适应不同尺寸的手机屏幕,用自动布局来完成我们想要实现的功能和效果显得尤为重要.本人更喜欢使用相对布 ...

随机推荐

  1. 使用命令行编译as文件成swf

    设置环境变量到flex sdk的目录下.如:D:\Program Files\Adobe Flash Builder 4.5\sdks\flex_sdk_4.6\bin 找到flex-config.x ...

  2. java 基础之概念

    1:栈(Stack) 先进后出(邮政模拟例) 2:队列(Queue) 先进先出(排队购票)

  3. Windows编译安装mod_wsgi,配合使用Django+Apahce

    编译环境: 均是32位版本 Microsoft Visual Studio 10.0 Microsoft SDKs v7.1 Apache2.4 Python3.4 mod_wsgi-4.5.0 要求 ...

  4. CentOS下Samba服务器的配置

    主要用途: 在两台计算机间共享文件.打印机 安装: yum install samba 启动服务: /etc/rc.d/init.d/smb start 添加用户  (必须是系统中真实存在的用户) s ...

  5. jq之简单的表单验证

    <body> <form method="post" action=""> <div class="int"& ...

  6. nginx初级安装配置

    nginx初级安装配置 转自:(lykyl原创)http://www.cnblogs.com/lykyl/archive/2012/11/21/2781077.html 实验环境:系统 CENTOS5 ...

  7. getWriter() has already been called for this response 的解决办法

    getWriter() has already been called for this response response已经被其他对象调用了,导致无法继续使用如下 类似的方法 PrintWrite ...

  8. jvisualvm

    f the fonts used by VisualVM are hard to read, switching the LaF might help.  Try for example  'visu ...

  9. [jQueryUI] – Chosen:select下拉选择框美化插件及问题

    Chosen 是一个支持jquery的select下拉框美化插件,它能让丑陋的.很长的select选择框变的更好看.更方便.不仅如此,它更扩展了select,增加了自动筛选的功能.它可对列表进行分组, ...

  10. 利用ZjDroid对 <捕鱼达人3> 脱壳及破解过程-转

    http://blog.sina.com.cn/zihao2015 <捕鱼达人3> 刚出来不久,就被鬼哥Dump出来dex,随之破解也就轻而易举.一开始我用ZjDroid神器试验过,但是没 ...