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开发中为了适应不同尺寸的手机屏幕,用自动布局来完成我们想要实现的功能和效果显得尤为重要.本人更喜欢使用相对布 ...
随机推荐
- hrbust oj 1025 (计算几何+近似计算)
这是我第一次只要可以这么做,题目中给的精度范围较大,所以可以把圆形的区域直接用小方块拼接近似来表示,maps地图开的越大,精度越高,但同时耗时也更多. 代码如下: #include<cstdio ...
- android TextView 之探究
1:插入图片替换 //代码 mSubjectDetailView = (TextView) findViewById(R.id.subject_detail); CharSequence text = ...
- html dom模型一
DOM 节点 包含的节点内容: 根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点: 整个文档是一个文档节点 每个 HTML 元素是元素节点 HTML 元素内的文本是文本节点 ...
- J2SE基本数据结构
1.J2SE中的常用数据结构对象的继承关系如下图 Collection ........|--------List ........|..........|----------ArrayList .. ...
- arrayList里的快速失败
快速失败是指某个线程在迭代集合类的时候,不允许其他线程修改该集合类的内容,这样迭代器迭代出来的结果就会不准确. 比如用iterator迭代collection的时候,iterator就是另外起的一个线 ...
- PAT (Advanced Level) 1102. Invert a Binary Tree (25)
简单题. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #in ...
- 判断浏览器增加标签 encodeURIComponent
var Sys = {}; var ua = navigator.userAgent.toLowerCase(); var s; var lx; (s = ua.match(/msie ([\d.]+ ...
- elk集成安装配置
三台虚拟机 193,194,195 本机 78 流程 pythonserver -> nginx -> logstash_shipper->kafka->logstash_in ...
- rpm命令说明
RPM命令常用参数 RPM的常规使用方法为rpm-?package.rpm,其中-?为操作参数(更多信息,请查阅帮助$manrpm): -q在系统中查询软件或查询指定rpm包的内容信息-i在系统中安装 ...
- C#入门经典-第15章ListBox,CheckedListBox