NSArray,NSMutableArray的一些常用方法
不可变数组 ——NSArray
常用的初始化一个数组:
NSArray *array1 = [[NSArray alloc] init];
NSArray *array2 = [NSArray array];
//对于上述两个方法,在NSArray中用的很少,因为这是一个空数组,它的值是不可改变的,意味着一旦创建,就永远为空
NSArray *array3 = [NSArray arrayWithObjects:[NSNumber numberWithInt:123],@"char",[NSNumber numberWithFloat:1.0f],nil];
NSArray *array4 = [NSArray arrayWithArray:array3];
NSArray *array5 = [NSArray arrayWithObject:@123];//NSNumber新方法
NSString *path = @"string8.text"; //@里出现的是想要访问的文件的路径
NSArray *array6 = [NSArray arrayWithContentsOfFile:path];
新方法:NSArray *array = @[@123,@"123",@{@"key": @"value"}];
新方法的出现,减轻了不少代码的负担,对于新方法不用去刻意记,在xcode中输入@后,系统会自动出现一幅图, 选择想用的方法,去创建就好。
对于alloc 方法和不用alloc 创建的区别,在这里就不叙述了,xcode中使用ARC后,开发者可以不用手动管理内存,用alloc时也没有太多需要注意的问题了。
常用的方法:
获取数组长度:
NSInteger count = [array count];
根据下标访问数组:
NSString * string = [array3 objectAtIndex:1];
在原来的数组上追加对象或数组,返回一个新的数组(原来的数组不变)
NSArray *addArray1 = [array1 arrayByAddingObject:@"char"];
NSArray *addArray2 = [array1 arrayByAddingObjectsFromArray:array4];
用指定的字符串将数组中的元素连接起来:
NSString *appstring = [array4 componentsJoinedByString:@","];
用指定的字符串将字符串中的元素分开并保存到数组中:
NSArray *appArray = [appstring componentsSeparatedByString:@","];
数组中是否包含了某个对象:
BOOL isContain = [appArray containsObject:@"abc"];
查找某对象在数组中的位置,若找不到,将返回NSNotFound:
NSInteger index = [appArray indexOfObject:@"char"];
返回数组中最后一个元素:
NSString *lastString = [appArray lastObject];
可变数组 ——NSMutableArray(继承自NSArray)
常用方法:
初始化,设置元素的个数为6,但是可以修改:
NSMutableArray *muArray1 = [NSMutableArray arrayWithCapacity:6];
向数组中指定下标插入一个元素:
[muArray1 insertObject:@"abc" atIndex:0];
向数组中加入一个元素:
[muArray1 addObject:@"123"];
移除数组中最后一个元素:
[muArray1 removeLastObject];
移除数组中指定元素:
[muArray1 removeObject:@"123"];
移除数组中指定下标元素:
[muArray1 removeObjectAtIndex:0];
加入数组作为其元素:
[muArray1 addObjectsFromArray:array];
遍历数组的两种方法:
常规方法:
NSArray *array = @[@"a",@"b",@"c",@"d",@"e"];
NSInteger length = [array count];
for (int i = 0; i < length; i++) {
NSString * element = [array objectAtIndex:i];
NSLog(@"element = %@\n",element);
}
快速遍历:
NSArray *array = @[@"a",@"b",@"c",@"d",@"e"];
NSInteger length = [array count];
for (NSString *element in array) {
NSLog(@"element = %@",element);
}
通过枚举类型遍历:
NSEnumerator *enumerator = [dic keyEnumerator];
id key = [enumerator nextObject];
while (key) {
id obj = [dic objectForKey:key];
NSLog(@"%@", obj);
key = [enumerator nextObject];
}
NSArray,NSMutableArray的一些常用方法的更多相关文章
- 关于NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary
NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary 在 OC 中我们天天都要用,而我们要怎 ...
- NSArray和NSMutableArray相互转换, 以及常用方法-备
有时候项目中NSArray和NSMutableArray需要相互转化,下面给出相关代码1.NSArray 1.1 转化:NSMutableArray 1 NSMutableArray *mutable ...
- OC中的NSNumber、NSArray、NSString的常用方法
和C语言不同,在Objective-C语言中,有单独的字符串类NSString.C语言中,string是由 char(ASCLL码)字符组成 OC中,字符串是由unichar(Unicode)字符组成 ...
- Foundation框架—— 数组 (NSArray NSMutableArray )
基础知识回顾 1.在给可变数组添加元素时,要保证该数组已被初始化 2.在遍历可变数组时,不能对其进行增删改 3.NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法. 4 ...
- NSArray,NSMutableArray的三种排序
int main(int argc, const char * argv[]) { @autoreleasepool { //字符串进行排序 NSArray *arr=@[@"b" ...
- (转)Iphone数组一些基础操作 NSArray/NSMutableArray
/******************************************************************************************* NSArray ...
- NSArray NSMutableArray
NSArray 或者 NSMUtableArray 去除重复的数据: 原来集合操作可以通过valueForKeyPath来实现的,去重可以一行代码实现: [array valueForKeyPath: ...
- NSArray NSMutableArray 初始化
NSArray* Array;//此时数组没有初始化,数组=nil [Array objectAtIndex:2];//不会调用其属性方法,这里不会崩溃 NSMutableArray *Mutable ...
- NSMutableArray和NSArray的常用方法及相互转换
NSMutableArray和NSArray的常用方法及相互转换 // NSArray --> NSMutableArray NSMutableArray *myMutableArray = [ ...
随机推荐
- atom 自定义快捷键
'atom-text-editor': 'shift-alt-i':'core:move-up' 'shift-alt-space':'core:move-down' 'shift-alt-l':'c ...
- CAD交互绘制云线批注(网页版)
js中实现代码说明: 动态拖放时的绘制事件: function DoDynWorldDrawFun(dX,dY,pWorldDraw,pData) { //自定义实体的GUID标识符 var sGui ...
- Web中打印的各种方案参考
http://blog.csdn.net/chinahuyong/article/details/42527491
- 如何移除 Navicat Premium for Mac 的所有文件
作者:郭文峰链接:http://www.zhihu.com/question/24210959/answer/34579422来源:知乎著作权归作者所有,转载请联系作者获得授权. 数据库连接信息存放在 ...
- 题解 P5082 【成绩】
随机跳题跳到了这一题,一看是个红题,本蒟蒻就 艰难地思考起来 高兴地写起来 这题实在不能用数组,用了数组就RE 一开始就卡在这上面了 说实话,这道题真的 很难 不算很难,只要照着公式往上面套就行了 废 ...
- Bootstrap历练实例:成功按钮
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- shell脚本,创建50个文件,删除50个文件。
[root@localhost ~]# cat create50.sh #!/bin/bash #创建50个文件 ` do touch student$i done echo "创建50个文 ...
- Java多线程大合集
1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速.比如,如果一个线程完成 ...
- python爬虫入门一:爬虫基本原理
1. 什么是爬虫 爬虫就是请求网站并提取数据的自动化程序 2. 爬虫的基本流程 1)发送请求 通过HTTP库向目标站点发送请求,即发送一个Request. 请求可以包含额外的headers等信息,等待 ...
- R语言基础-list matrix array
列表可以包含多种类型,如数字/字符/向量/data.frame/list # 创建含一个向量元素的list list1 = list(c(1,2,3)) # list2有三个元素 list2 = li ...