`

ios/iphone NSArray和NSMutableArray的常用方法

 
阅读更多
/* 初始化方法:
1.init返回一个空数组
2.initWithArray从已有数组初始化
3.initWithContentsOfFile//从plist文件加载
4.initWithContentsOfUrl//从网络地址上获取
5.initWithObject用一个对象初始化
6.initWithObjects从多对象初始化

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 *tempArray=[[NSMutableArray alloc]initWithObjects:@"one",@"tow",@"threr",nil];
[tempArray removeObjectAtIndex:0];//从指定索引移除
[tempArray removeAllObjects];//移除所有元素
[tempArray removeLastObject];//移除最后那个元素
[tempArray removeObjectsInArray:newArray];//移除指定数组中元素
[tempArray removeObjectsAtIndexes: NSIndexSet *__strong)];//从所选择的索引中移除
*/
分享到:
评论

相关推荐

    Iphone数组一些基础操作 NSArray/NSMutableArray

    NSArray和NSMutableArray是两个常用的数组类,分别代表不可变数组和可变数组。下面将详细介绍这两个类的一些基础操作。 首先,创建NSArray的基本方法是通过`initWithObjects:`初始化,如: ```objc NSArray *array ...

    (0031)-iOS/iPhone/iPAD/iPod源代码-列表(Table)-comboBox

    这可以是一个简单的NSArray或NSMutableArray,也可以是更复杂的数据结构,如字典数组,其中键代表选项,值可以是附加信息。 3. **扩展UITableViewDataSource和UITableViewDelegate**: 在你的ViewController中,遵循...

    iOS原生正则表达式以及NSArray快捷过滤

    NSPredicate应用,包括以下几个部分: 1、字符串,正则表达式的匹配; 2、字符串数组NSArray和NSMutableArray的快捷过滤方式; 3、自定义对象数组NSArray和NSMutableArray的快捷过滤方式;

    iphone 开发学习基础NSArray

    本教程将带你深入理解NSArray的基础,包括固定数组(NSArray)和可变数组(NSMutableArray),以及如何创建简单的类文件和使用方法。 首先,我们来看NSArray。NSArray是一个不可变的对象容器,一旦创建,其内部对象...

    【Foundation Framework Reference】[PDF] [iPhone/iPad/iOS]

    此外,它还包含了一系列高效的容器类,如`NSArray`(不可变数组)、`NSMutableArray`(可变数组)、`NSSet`(集合)、`NSMutableDictionary`(键值对字典),这些容器类能够满足不同场景下的数据存储需求。...

    iPhone开发【七】常用控件之表TableView

    同时,可能会使用NSArray或NSMutableArray存储数据,以便在数据源方法中返回。 另外,UITableView提供了许多自定义选项,如表头(tableHeaderView)、表尾(tableFooterView)以及分组头和脚(sectionHeader and ...

    IOS应用源码之自制 iPhone DataGrid 数据列表组件,支持行列锁定Grid.zip

    这可能涉及到使用NSArray或NSMutableArray来存储数据,然后在DataGrid中根据需要更新这些数据。 4. 滚动性能优化:对于大型数据集,滚动性能是一个重要的考量因素。开发者可能采用了各种技术来优化,比如使用懒加载...

    ios电话面试题库

    NSArray 用于对象有序集合,初始化一个数组时,经常使用 initWithObject 和 initWithObjects 方法。NSMutableArray 是可变对象数组,可以进行删除、添加、排序等操作。NSSet 用于对象无序集合,NSDictionary 用于...

    关于 堆栈 iOS

    在iOS中,堆栈主要由C语言的数组或者Objective-C中的NSArray、NSMutableArray等对象来实现。例如,NSMutableArray提供了`addObject:`方法进行压栈操作,`removeLastObject`方法用于弹栈。此外,iOS的内存管理机制,...

    iPhone开发常用类型的参考

    6. **NSMutableArray_Class.pdf**:NSMutableArray是NSArray的可变子类,允许添加、删除和替换元素。文件可能涵盖了数组的动态操作,如插入、移除、替换、排序等,以及如何安全地在多线程环境中操作NSMutableArray。...

    iphone存储用法汇总

    从给定的文件标题“iPhone存储用法汇总”和描述“PDF中包含有iOS数据的存储类型详细介绍”,我们可以深入探讨iOS开发中常见的数据存储技术,特别是对于基础数据类型的使用,如字符串、数组和字典。以下是对这些核心...

    ios面试题,iphone

    ### iOS面试题解析 #### 1. 浅拷贝与深拷贝的区别? 浅拷贝与深拷贝是对象复制中的两种主要方式,在Objective-C语言中尤为重要。 - **浅拷贝**:仅复制对象的引用地址,即创建一个新的变量指向同一个内存区域。这...

    iOS笔试题031

    在iOS开发中,数组是数据结构的基础,我们经常会遇到NSMutableArray和NSArray的选择问题。NSMutableArray是一个可变数组,它允许你在程序运行时动态地添加、删除或修改数组中的元素,适用于需要灵活调整数据的情况。...

    iOS工程师培养计划

    - 常用的`NSFoundation`类掌握:`NSData`, `NSString`, `NSDictionary`, `NSArray`, `NSMutableArray`, `NSNumber`, `NSUserDefaults` - 类私有方法的声明方式 - **学习资料**:《Objective-C2.0程序设计》 #####...

    iphone文档,大家共享

    此外,集合类如NSArray、NSMutableArray、NSSet、NSMutableDictionary等,为数据存储和操作提供了丰富的API。这些类遵循了NSObject Protocol,并且通常实现了标准的集合行为,如添加、删除元素,以及查找、排序等...

    YXCTool:日常开发中一些用得到的代码整理

    HEIGHT当前设备屏幕的高度IPHONE_WIDTH当前设备屏幕的宽度kIsBangsScreen判断当前设备是否是刘海屏幕NSArray +崩溃主要是对NSArray , NSMutableArray一些数据安全做一层判断,降低因为数据异常导致崩溃的概率具体...

    iphone开发快速入门[收集].pdf

    Objective-C 是苹果公司开发的一种面向对象的编程语言,主要用于iPhone、iPad等iOS设备的应用程序开发。它是基于标准的ANSI C,并在其基础上扩展了面向对象的功能。Objective-C 的语法受到Smalltalk的影响,同时兼容...

    iphone数组学习

    除了`NSArray`之外,还有其他两种常用的集合类: 1. **NSSet: 无序集合** - `NSSet`是对象的无序集合,这意味着集合中不会保持任何特定的顺序,并且不允许重复的元素。 2. **NSDictionary: 键值映射** - `...

Global site tag (gtag.js) - Google Analytics