NSArray、NSMutableArray基本用法
NSArray、NSMutableArray基本用法
一、基本操作
初始化方法:
1.init返回一个空数组
2.initWithArray从已有数组初始化
3.initWithContentsOfFile//从plist文件加载
4.initWithContentsOfUrl//从网络地址上获取
5.initWithObject用一个对象初始化
6.initWithObjects从多对象初始化
7.self.theDataArray=[[NSMutableArray alloc]initWithCapacity:5];//指定有五个元素初始化
打印第一个元素:
NSLog(@"the object is:%@",[theDataArray firstObjectCommonWithArray:theDataArray]);
打印最后一个元素:
NSLog(@"the object is:%@",[theDataArray lastObject]);
枚举所有元素,方法一:
for (NSString * theStr in theDataArray) {
NSLog(@"%@:",theStr);
}
枚举所有元素,方法二:
for (int i=0,i<[theDataArray count],i++) {
NSLog(@"%@:",[theDataArray objectAtIndex:i]);
}
枚举所有元素,方法三,用枚举器:
NSEnumerator *enumerator=[theDataArray objectEnumerator];
id obj;
while (obj =[enumerator nextObject]) {
NSLog(@"%@",obj);
}
添加元素
[theDataArray addObject:@"这是新添加的元素"];//从最后开始添加
从指定索引插入元素
[theDataArray insertObject:@"this is inerted object" atIndex:0];//是插入到指定 索引的前面
修改.更新元素
[theDataArray replaceObjectAtIndex:0 withObject:@"new obj"];//指定索引修改
判断数组是否包含某个对象
if ([theDataArray containsObject:@"selectiont"]) {
NSLog(@"the object selection is contained in array");
}
else{
NSLog(@"not contain");
}
获取元素索引
NSLog(@"the idx is:%i",[theDataArray indexOfObject:@"selection"]);
数组元素排序
方法一:
NSArray *theTempArr=[[NSArray alloc] initWithArray:[theDataArray
sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]];
[theDataArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
// or @selector(compare:)
方法二:
NSLog(@"before sorted array:%@",theDataArray);
NSCountedSet *cset=[[NSCountedSet alloc] initWithArray:theDataArray];
NSArray *theTempArr=[[NSArray alloc] initWithArray:[[cset allObjects]sortedArrayUsingSelector:@selector(compare:)]];
NSLog(@"after sorted array:%@",theTempArr);
对数组对象进行排序 NSSortDescriptor
NSSortDescriptor *sortDescriptor=[[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];//@“name”是对象属性
[theDataArray sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];//返回排序好的数组
//还可以用自定义方法:[theDataArray sortUsingSelector:@selector(custom Method:)];
-(NSInteger)customMethod:(someObject *)otherObj{
NSCompareResult compareResult=[self.name compare:otherObj.name];
if(compareResult == NSOrderedSame) return 0;
if(compareResult == NSOrderedAscending) return 1;
else return -1;
}
对象数组过滤(NSPredicate)
NSArray *keyArray=[[NSArray alloce]initWtihObjects:@"A",@"B",nil];
for (NSString *key in keyArray)
{
//定义规则:
NSPredicate *apredicate=[NSPredicate predicateWithFormat:@"SELF.name
beginswith[c] %@",key]; //SELF.name是对象属性,beginswith[c] %@",key
表示选出name以key开头的对象
//或者 :
NSPredicate *apredicate=[NSPredicate
predicateWithFormat:@"SELF.name contains [c] %@",key]; //contains[c]
%@",key 表示选出name中包含有key的对象
//或者 :
NSInteger age=20;
NSPredicate *apredicate=[NSPredicate predicateWithFormat:@"SELF.age > %i",age]; // 表示选出age>20的对象
//或者 :
NSString * matchStr=@"hel*";
NSPredicate *apredicate=[NSPredicate predicateWithFormat:@"SELF.name like %@",matchStr]; // 表示选出name中包含与字符串matchStr相似的对象
NSArray *newArr=[theDataArray filteredArrayUsingPredicate:apredicate];
[theDataDict setValue:newArr forKey:key];
}
NSMutableArray
删除数组元素
NSMutableArray *tempArray=[[NSMutableArray alloc]initWithObjects:@"one",@"tow",@"threr",nil];
[tempArray removeObjectAtIndex:0];//从指定索引移除
[tempArray removeAllObjects];//移除所有元素
[tempArray removeLastObject];//移除最后那个元素
[tempArray removeObjectsInArray:newArray];//移除指定数组中元素
[tempArray removeObjectsAtIndexes: NSIndexSet *__strong)];//从所选择的索引中移除
(内容均来自于各大IT论坛)
NSArray、NSMutableArray基本用法的更多相关文章
- Objective-C中NSArray的基本用法示例
NSArray的一些用法 NSArray只允许装OC对象,并且不能装空值,空代表数组元素的结束 #pragma mark - NSArray的基本用法 // 创建一个空数组 NSArray *arra ...
- 关于NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary
NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary 在 OC 中我们天天都要用,而我们要怎 ...
- 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 NSDictionary一些用法
//从字符串分割到数组- componentsSeparatedByString: NSString *str = [NSString alloc] initWithString:@"a,b ...
- NSArray NSMutableArray 初始化
NSArray* Array;//此时数组没有初始化,数组=nil [Array objectAtIndex:2];//不会调用其属性方法,这里不会崩溃 NSMutableArray *Mutable ...
- OC中Foundation框架之NSArray、NSMutableArray
NSArray概述 NSArray是OC中的数组类 NSArray特点 )只能存放任意OC对象,并且是有顺序的 )不能存放非OC对象,比如int/float/double/char/enum/stru ...
随机推荐
- Java连接Oracle
Process myProcess = Runtime.getRuntime().exec("ipconfig"); InputStreamReader ir = new Inpu ...
- 关于SqlServer的DBHelper类以及数据分页
前端: <My:AspNetPager class="arPage" PageSize="20" UrlPaging="true" r ...
- nova分析(10)—— nova-rootwrap
一.nova-rootwrap的作用 部署玩过openstack的都应该知道,它会生成一个nova用户来管理所有服务.nova身份在linux中属于普通用户级别,避免了一些需要root身份运行的操作, ...
- Python(正则 Time datatime os sys random json pickle模块)
正则表达式: import re #导入模块名 p = re.compile(-]代表匹配0至9的任意一个数字, 所以这里的意思是对传进来的字符串进行匹配,如果这个字符串的开头第一个字符是数字,就代表 ...
- xmodem, ymodem & zmodem
这三个是modem文件传输协议. https://en.wikipedia.org/wiki/XMODEM https://en.wikipedia.org/wiki/YMODEM https://e ...
- bzoj4705: 棋盘游戏
Description 有一个N*M的棋盘,初始每个格子都是白色的. 行操作是指选定某一行,将这行所有格子的颜色取反(黑白互换). 列操作是指选定某一列,将这列所有格子的颜色取反. XX进行了R次行操 ...
- 使用express搭建第一个Web应用【Node.js初学】
来源:http://jingyan.baidu.com/article/bad08e1ee501e009c8512106.html express是一个开源的node.js项目框架,初学者使用expr ...
- [Android Exception 1A] -com.android.volley.NoConnectionError: java.io.InterruptedIOException
- ::-/com.tongyan.tutelage W/System.err: com.android.volley.NoConnectionError: java.io.InterruptedIO ...
- PLSQL_性能优化系列16_Oracle Tuning Analyze优化分析
2014-12-23 Created By BaoXinjian
- python(17) 获取acfun弹幕,评论和视频信息
每天一点linux命令:新建文件夹