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). 苹果的面向对象开 ...
随机推荐
- 042. asp.net使用缓存来提高母版页的访问性能
Asp.Net缓存技术是一项非常重要的技术, 当一个页面被频繁的访问, 如果不使用缓存技术, 那么每访问一次就要回发一次服务器, 显然这样对服务器造成很大的负担, 所以, 可以在被频繁访问的页面中设置 ...
- 游戏AI框架
- Python单元测试和Mock测试
单元测试 测试可以保证你的代码在一系列给定条件下正常工作 测试允许人们确保对代码的改动不会破坏现有的功能 测试迫使人们在不寻常条件的情况下思考代码,这可能会揭示出逻辑错误 良好的测试要求模块化,解耦代 ...
- shiro 自动登录
1.出现的错误:did not match the expected credentials---密码不匹配,后来自己写密码验证,其实作用不大: 配置 <!-- Shiro权限过滤过滤器定义 - ...
- SQLSERVER 复制同一张表的递归结构
CREATE PROCEDURE [dbo].[Pro_Copy] @OLDJiFenSeriesId VARCHAR(), @NEWJiFenSeriesId VARCHAR() AS BEGIN ...
- ecstore-app接口
接口调用方式: 接口完整地址为:http://域名/index.php/wapapp/请求地址 比如获取商品信息就是 http://域名/index.php/wapapp/product.html 提 ...
- C++ CTime COleTime的一些操作技巧
strCString="2003-10-27 6:24:37"; //CString--->COleDateTime COleVariant vtime(strCString ...
- Android学习笔记(十三)
Android中的广播机制 Android提供了一套完整的API,允许应用程序自由地发送和接受广播. 发送广播的方法借助于Intent,接受广播的方法需要广播接收器(BroadcastsReceive ...
- bug--常见的bug总结:
新手总结的开发中所遇到错误及解决办法,如有不对,欢迎指正,如有更好的解决办法,也请不吝赐教. 一.dialog.show()引起的android.view.WindowManager$BadToken ...
- caffe.exe (caffe.bin)用法回顾
caffe.bin :command line brew usage : caffe <command><args> commands: train: 训练或者微调一个网络 ...