Foundation ----->NSArray
- .数组的创建
- //注意:在OC的数组中,只能够存放对象
- // NSArray *array = [NSArray arrayWithObject:12];错误
- //创建字符串
- NSString *str1 = @"zhangsan";
- NSString *str2 = @"lisi";
- NSString *str3 = @"wangwu";
- //创建数组,并且设置多个元素
- //注意:是以nil结尾的
- NSArray *array1 = [[NSArray alloc] initWithObjects:str1,str2,str3, nil];
- NSLog(@"array1:%@",array1.description);
- //使用对应的类方法
- NSArray *array2 = [NSArray arrayWithObjects:str1,str2,str3, nil];
- NSLog(@"array2:%@",array2);
- //创建数组的同时初始化一个元素
- NSArray *array3 = [[NSArray alloc] initWithObjects:str1, nil];
- NSArray *array4 = [NSArray arrayWithObject:str1];
- NSLog(@"array3:%@ \n array4:%@",array3,array4);
- //创建数组的同时使用一个已有的数组初始化
- NSArray *array5 = [[NSArray alloc] initWithArray:array2];
- NSArray *array6 = [NSArray arrayWithArray:array2];
- NSLog(@"array5:%@ \n array6:%@",array5,array6);
- .获取数组的相应元素
- //-----------根据下标取元素---------
- NSString *str = [array5 objectAtIndex:];
- .获取数组元素个数
- NSUInteger count = array5.count; //[array5 count];
- NSLog(@"count:%ld",count);
- .判断某一个元素是否在一个数组中
- BOOL isContain = [array5 containsObject:@"zhaoliu"];
- if (!isContain) {
- NSLog(@"不包含zhaoliu");
- }
- .根据某一个元素获取下标
- //如果有这个元素,则返回相应的下标,没有则返回NSNotFound
- NSInteger index = [array5 indexOfObject:@"zhaofei"];
- if (index == NSNotFound) {
- NSLog(@"没有响应的元素");
- }
- .注意两个数组的区别
- //将array5中的所有元素交给array8
- NSArray *array8 = [NSArray arrayWithArray:array5];
- NSArray *array9 = [NSArray arrayWithObject:array5];
- NSLog(@"array9:%@",array9);
- .获取数组中最前面/最后面的一个元素
- NSString *firstStr = [array8 firstObject];
- NSString *lastStr = [array8 lastObject];
- NSLog(@"firstStr:%@ lastStr:%@",firstStr,lastStr);
- .截取数组
- NSArray *array10 = [[NSArray alloc] initWithObjects:@"",@"",@"",@"",@"", nil];
- //截取出@"2",@"3",@"4"
- NSRange rg = {,};
- NSArray *subArray = [array10 subarrayWithRange:rg];
- NSLog(@"subArray:%@",subArray);
- .追加数组
- //追加一个元素
- // [array10 arrayByAddingObject:<#(nonnull id)#>]
- //在array10后面追加元素
- NSArray *addArray = [array10 arrayByAddingObjectsFromArray:array1];
- NSLog(@"%@",addArray);
- .数组比较
- if ([array1 isEqualToArray:array2]) {
- NSLog(@"array1和array2相同");
- }
- .判断两个数组的开头是否相同
- // 1,2,4,5 3,2,1,6
- NSArray *a = @[@"",@"",@"",@""];
- NSArray *a2 = @[@"",@"",@"",@""];
- NSString *sameS = [a firstObjectCommonWithArray:a2];
- NSLog(@"%@",sameS);
- if (![array1 firstObjectCommonWithArray:array10]) {
- NSLog(@"第一个元素不相同");
- }
- .数组遍历
- //方式一:
- //遍历addArray
- //获取addArray数组的长度
- NSUInteger count2 = addArray.count;
- for (int i=; i<count2; i++) { //注意数组越界
- //i:0....
- //根据下标获取元素
- // NSString *obj = [addArray objectAtIndex:i];
- //等价
- NSString *obj = addArray[i];
- NSLog(@"obj:%@",obj);
- }
- //方式二:快速遍历
- for (NSString *str in addArray) {
- NSLog(@"str:%@",str);
- }
- //------------数组新语法------------
- // int a[] = {1,2,3,4}
- // a[2]
- //创建并且初始化数组
- NSArray *array11 = @[@"",@"",@"",@"",@""];
- NSLog(@"%@",array11);
- //根据制定下标获取元素
- NSString *s = array11[];
- NSLog(@"s:%@",s);
- 二:可变数组(NSMutableArray)
- NSString *s1 = @"zhaoliu";
- NSString *s2 = @"tianqi";
- NSString *s3 = @"suba";
- .创建可变数组
- //不可以这么写
- // NSMutableArray *mutArray = @[s1,s2,s3];
- //创建一个容量为5的数组,可以存放超过5个元素,空间会自动增加
- NSMutableArray *mutArray1 = [NSMutableArray arrayWithCapacity:];
- //注意:此时没有元素,0
- NSUInteger mutCount = mutArray1.count;
- NSLog(@"mutCount:%ld",mutCount);
- NSMutableArray *mutArray2 = [[NSMutableArray alloc] initWithObjects:s1,s2,s3, nil];
- .添加元素
- // [mutArray2 addObject:str1];
- // [mutArray2 addObject:str2];
- // [mutArray2 addObject:str3];
- //2.将一个数组中的元素添加到可辨数组中
- [mutArray2 addObjectsFromArray:array1];
- //3.将一个数组作为一个元素添加到数组中
- [mutArray2 addObject:array1];
- .插入元素
- [mutArray2 insertObject:@"" atIndex:];
- .替换元素
- [mutArray2 replaceObjectAtIndex: withObject:@"bingge"];
- //可以替换多个
- // [mutArray2 replaceObjectsInRange:<#(NSRange)#> withObjectsFromArray:<#(nonnull NSArray *)#>]
- .交换
- [mutArray2 exchangeObjectAtIndex: withObjectAtIndex:];
- .删除
- //删除所有元素
- // [mutArray2 removeAllObjects];
- //删除最后一个元素
- // [mutArray2 removeLastObject];
- //删除指定元素
- // [mutArray2 removeObject:@"bingge"];
- // /删除指定下标元素
- // [mutArray2 removeObjectAtIndex:1];
- //删除多个元素
- NSRange rg1 = {,};
- NSIndexSet *indexSet = [[NSIndexSet alloc] initWithIndexesInRange:rg1];
- [mutArray2 removeObjectsAtIndexes:indexSet];
- NSLog(@"mutArray2:%@",mutArray2);
- .数组元素排序
- NSArray *array = @[@"agfd",
- @"abc",
- @"adf",
- @"aaa",
- @"csw",
- @"swa"];
- NSArray *newArray = [array sortedArrayUsingSelector:@selector(compare:)];
- NSLog(@"newArray:%@",newArray);
Foundation ----->NSArray的更多相关文章
- 【IOS】IOS高速入门之OC语法
Objective-C 是 C 语言的超集 您还能够訪问标准 C 库例程,比如在stdlib.h和stdio.h中声明的那些例程. Objective-C 还是一种很动态的程序设计语言,并且这样的动态 ...
- Object-C 新手教程
大纲 開始吧 下载这篇教学 设定环境 前言 编译 hello world 创建 Classes @interface @implementation 把它们凑在一起 具体说明... 多重參数 建构子( ...
- iOS扩展——Objective-C开发编程规范
最近准备开始系统学习一个完整项目的开发流程和思路,在此之前,我们需要对iOS的开发变成规范进行更系统和详尽的学习,随意对编程规范进行了整理和学习.本文内容主要转载自:Objective-C-Codin ...
- [Swift]JSON字符串与字典(Dictionary)、数组(Array)之间的相互转换
1.JSON字符串与字典(Dictionary)之间的相互转换 import Foundation //JSON字符串转换为字典(Dictionary) func getDictionaryFromJ ...
- iOS命名规范(转载)
转载地址:http://www.cnblogs.com/qiqibo/archive/2012/09/05/2671553.html 正文: • 格式化代码 ◦ 指针“*”号的位置 ▪ 如:NSStr ...
- NSKeyValueObserving.m
https://github.com/farcaller/cocotron/blob/af740de86c9bee84c59ffc74d27e5df9e22e1391/Foundation/NSKey ...
- 值得借鉴的Objective-C编程规范
Daniel's Objective-C Coding Style Guidelines http://google-styleguide.googlecode.com/svn/trunk/objcg ...
- [翻译] BFKit
BFKit BFKit is a collection of useful classes to develop Apps faster. BFKit是一个有用的工具集合,帮助你快速开发. Insta ...
- kvc和kvo的使用情况的了解
了解cocoa:Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之中的一个(其他四个是Carbon.POSIX.X11和Java). 苹果的面向对象开 ...
随机推荐
- 002. Centos7安装mysql5.5.37
下载cmake-2.8.12.2.tar.gz, 下载地址: https://pan.baidu.com/s/1qYtpX7m 下载mysql-5.5.37.tar.gz, 下载地址: http:// ...
- NULL指针、零指针、野指针
1.1.空指针 如果 p 是一个指针变量,则 p = 0; p = 0L; p = '\0'; p = 3 - 3; p = 0 * 17;p=(void*)0; 中的任何一种赋值操作之后, p 都成 ...
- delphi locate多字段查询
简单格式: IF MSQ_NewBillQuantity.Locate('FStockID;FMarchID', VarArrayOf([FStockID, FMarchID]), []) = Fal ...
- Hibernate之对象的三种状态
Hibernate之Java对象的三种状态 一.简述 本博文大部分的思想和内容引子CSND上名为 FG2006 这位大神的文章,连接地址为:http://blog.csdn.net/fg2006/ar ...
- left join 取一条数据
产品生产过程中要记录产品在制作过程中的不良历史,即使在一个工序,也可以产生多条不良历史记录,所有的不良信息保存在B表中.假设产品在打包工序,存放打包工序成品参数记录的表A,数据是唯一的.但在打包过程中 ...
- 源码阅读笔记 - 2 std::vector (1)
vector的源码真是太长了,今天用了一个下午和一个晚上看和注释了前面的一千行左右 p.s.博客园的代码高亮真是太垃圾, 如果想要阅读带注释的源码,推荐粘贴到VS2015里,然后按ctrl+z取消自动 ...
- Angular2+typescript+webpack2(支持aot, tree shaking, lazy loading)
概述 Angular2官方推荐的应该是使用systemjs加载, 但是当我使用到它的tree shaking的时候,发现如果使用systemjs+rollup,只能打包成一个文件,然后lazy loa ...
- Spring AOP 由浅入深
(分析基于Spring的版本:version = 4.1.6.RELEASE) Spring AOP工厂: org.springframework.aop.framework.DefaultAopPr ...
- Sorry, but the Android VPN API doesn’t currently allow TAP-based tunnels.
Sorry, but the Android VPN API doesn’t currently allow TAP-based tunnels. Edit .ovpn configfile “dev ...
- Spark1.3使用外部数据源时条件过滤只要是字符串类型的值均报错
CREATE TEMPORARY TABLE spark_tbls USING org.apache.spark.sql.jdbc OPTIONS ( url 'jdbc:mysql://hadoop ...