IOS开发-ObjC-NSArray
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的更多相关文章
- iOS开发-NSArray
忙了一上午,解决了几个bug,现在终于抽出来一点时间喝点水休息下, 想着系列这么浩大的一个工程,才刚刚开始写,不能断了,就跟写小说一样,既然是系列,那么就需要不停更... 好吧. 简单的说说iOS开发 ...
- iOS开发系列--打造自己的“美图秀秀”
--绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...
- iOS开发系列--Swift进阶
概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用S ...
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
--系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...
- iOS开发系列--数据存取
概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库.例如前面IOS开发系列-Objective-C之Foundation框架的文章中提到归档.plist文件存储, ...
- iOS开发系列--网络开发
概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力 ...
- iOS开发系列--无限循环的图片浏览器
--UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件 ...
- IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
- iOS开发系列—Objective-C之Foundation框架
概述 我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NSObject,那么这个对象到底 ...
- IOS开发之自动布局显示网络请求内容
在上一篇博客中详细的介绍了IOS开发中的相对布局和绝对布局,随着手机屏幕尺寸的改变,在App开发中为了适应不同尺寸的手机屏幕,用自动布局来完成我们想要实现的功能和效果显得尤为重要.本人更喜欢使用相对布 ...
随机推荐
- JavaScript(四)---- 函数
函数主要用来封装具体的功能代码. 函数是由这样的方式进行声明的:关键字 function.函数名.一组参数,以及置于括号中的待执行代码. 格式: function 函数名(形参列表){ ...
- 11、组合模式(Composite)
组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便,看看关系图: 直接来看代码: [java] view plaincopy public class TreeNode { privat ...
- C#中String和stringBuilder的区别
Stringbuilder类是直接用于字符串操作的类,打个比方把(1)string aa="123456";(2)aa+="789"; (3)StringBui ...
- fiddler2 中文乱码问题
打开注册表编辑器,找到HKCU\Software\Microsoft\Fiddler2\,在里面添加一个字符串值,名叫HeaderEncoding,值设置为默认编码.建议设成GB18030.然后要记得 ...
- oracle-创建表空间报错 提示ora-01119 ora-27040:无法创建文件
create tablespace syx datafile 'D:\yangk\oraclespace\syx.ora' size 1000m; 低级错误,这是因为指定路径的路径问题,因为指定的路径 ...
- 关于jdk环境变量配置成了1.6.0_39 32位jdk 的路径 cmd中java -version却还是显示 64位或者其他jdk 路径的解决方法
其实是c盘或者其他盘的 jdk 安装的太多了,把其他的都卸载掉就行了
- ural1772 Ski-Trails for Robots
Ski-Trails for Robots Time limit: 1.0 secondMemory limit: 64 MB One of the stages of the Robot Cross ...
- 学习Robot Framework必须掌握的库—-BuiltIn库
作为一门表格语言,为了保持简单的结构,RF没有像别的高级语言那样提供类似if else while等内置关键字来实现各种逻辑功能,而是提供给了用户BuiltIn库.如果用户想在测试用例中实现比较复杂的 ...
- 创建OpenStack外部网络并分配浮动IP
source openrcneutron net-create ext-net --provider:network_type local --router:external Trueneutron ...
- stdarg.h头
stdarg.h 头文件,主要目的是让函数可以接受可变参数. va_list :用来保存宏va_arg与宏va_end所需信息. va_start :使va_list指向起始的参数 va_arg :检 ...