/**
arrayByAddingObject
-- 往数组A添加一个数据,返回一个数组的形式,即必须有一个数组来接受
*/
NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3", nil];
array = [array arrayByAddingObject:@"4"];
NSLog(@"-----addarr=%@-----", array); //>>1,2,3,4 /**
arrayByAddingObjectsFromArray
-- 往数组A添加一组数组B,返回数组类型,需要一个数组来接受数据
*/
NSArray *addArr2 = [array arrayByAddingObjectsFromArray:array];
NSLog(@"-----addArr2=%@-----", addArr2); //>>>1,2,3,4,1,2,3,4 /**
componentsJoinedByString
-- 将数据A以 需要的分隔符分割开,组成一个字符串:例如数组A= [1,2,3];分隔符为^, 字符串为1^2^3
*/
NSString *arrayStr = [array componentsJoinedByString:@"^"];
NSLog(@"-----arrayStr=%@-----", arrayStr); //>>>1^2^3 /**
containsObject
-- 数组是否包含某个对象
*/
BOOL isContains = [array containsObject:@"5"];
NSLog(@"-----isContains=%d-----", isContains); //>>>NO /**
description
*/
NSString *arrDes = [array description];
NSLog(@"-----description=%@-----", arrDes); /**
indexOfObject
--判断 anObject 对象是否存在数组中如果存在返回,对象所在的下标;如果不存在,返回NSNotFund
*/
NSUInteger index = [addArr2 indexOfObject:@"5"];
NSLog(@"-----index=%ld-----", index); /**
indexOfObjectIdenticalTo: inRange:
-- 判断 anObject 对象是否存在数组中range范围内,如果存在,返回下标了;如果不存在,返回NSNotFund
*/
NSUInteger index2 = [addArr2 indexOfObject:@"3" inRange:NSMakeRange(1, 3)];
NSLog(@"-----index2 = %ld-----", index2); // 2 /**
objectEnumerator --正序遍历数组
reverseObjectEnumerator --反序遍历数组
*/
NSEnumerator *rator = [array objectEnumerator];
id obj = nil;
while (obj = [rator nextObject]) {
NSLog(@"----obj=-%@-----",obj);
} /**
isEqualToArray
-- 两个数组是否相等
*/
BOOL isSame = [addArr2 isEqualToArray:array];
NSLog(@"-----isSame = %d-----", isSame); /**
sortedArrayUsingSelector
-- 如果只是对字符串排序的话, 可以利用 字符串自带的compare:方法;也可以自己写compare:方法,进行对象的比较
*/ /**
subarrayWithRange
-- 截取数组 range的数组
*/
NSArray *subArray = [addArr2 subarrayWithRange:NSMakeRange(2, 4)];
NSLog(@"-----subArray=%@-----", subArray); /**
writeToFile: atomically:
-- 把数据写入本地
*/ /**
writeToURL: atomically:
--保存数组至一个URL
*/ /**
makeObjectsPerformSelector:(SEL)aSelector
-- 让每个数组都调用 aSelector 这个方法
*/ NSLog(@"-----addArr2=%@-----", addArr2); /**
objectAtIndexedSubscript:
-- 获取数组中 idx 索引的数据
*/
NSString *strIndex = [addArr2 objectAtIndexedSubscript:3];
NSLog(@"-----strIndex=%@-----", strIndex); //>>>4 /**
enumerateObjectsUsingBlock:
-- 这个方法也是一种循环的方法与for,while实现的功能一样;当stop = yes的时候,就停止循环
*/
[addArr2 enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
// NSLog(@"-----obj= %@ idx = %ld -----", obj, idx);
}]; /**
enumerateObjectsWithOptions:(NSEnumerationOptions)opts usingBlock:
-- 这个方法也是一种循环的方法与for,while实现的功能一样;当stop = yes的时候,就停止循环
*/
//NSEnumerationReverse 倒序遍历
[array enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSLog(@"-----obj= %@ idx = %ld -----", obj, idx);
//当需要结束循环的时候,调用stop,赋予YES
// if (idx ==3) {
// *stop = YES;
// } }]; /**
enumerateObjectsAtIndexes:(NSIndexSet *)s options:
-- 在制定的数组范围 s 内 遍历数据
*/
[addArr2 enumerateObjectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(2, 4)] options:NSEnumerationReverse usingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSLog(@"-----obj= %@ idx = %ld -----", obj, idx);
}]; /**
indexOfObjectPassingTest
-- 根据条件用来获取一个NSUIndex 对象,主要是根据条件进行数据遍历使用
*/
NSInteger testIndex = [array indexOfObjectPassingTest:^ BOOL (id tr,NSUInteger index, BOOL *te){
NSString *s = (NSString *)tr;
if([@"4" isEqualToString:s])
{
return YES;
}
return NO;
}]; NSLog(@"index==%ld=.",testIndex); //>>> 3 /**
sortedArrayUsingComparator:
-- 排序 , 这个方法本身就是按递增的方式排序。 NSOrderedAscending
-The left operand is smaller than the right operand.
NSOrderedSame
-The two operands are equal.
NSOrderedDescending
-The left operand is greater than the right operand */ NSArray *numberArray = @[@"3", @"4", @"9", @"1"]; //递增
NSArray *sortArray = [numberArray sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
if ([obj1 integerValue] > [obj2 integerValue]) {
return NSOrderedDescending;
}else {
return NSOrderedAscending;
}
}]; NSLog(@"-----sortArray=%@-----", sortArray); //>>>1 3 4 9 /**
sortedArrayWithOptions:(NSSortOptions)opts usingComparator
-- 与上个方法一致
*/

此外还提供了NAMutableArray的方法,这个方法常用,都知道意思,只列举方法:

@interface NSMutableArray<ObjectType> : NSArray<ObjectType>

- (void)addObject:(ObjectType)anObject;  --往数组添加数据
- (void)insertObject:(ObjectType)anObject atIndex:(NSUInteger)index; --往数组的第index下标插入一个anobject数据
- (void)removeLastObject; -- 移除数组的最后一个数据
- (void)removeObjectAtIndex:(NSUInteger)index; --移除数组中第index个数据
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(ObjectType)anObject; --用 anobject 替换 数组 中 第index个数据
- (instancetype)init NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithCapacity:(NSUInteger)numItems NS_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER; @end @interface NSMutableArray<ObjectType> (NSExtendedMutableArray) - (void)addObjectsFromArray:(NSArray<ObjectType> *)otherArray;
- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2;
- (void)removeAllObjects;
- (void)removeObject:(ObjectType)anObject inRange:(NSRange)range;
- (void)removeObject:(ObjectType)anObject;
- (void)removeObjectIdenticalTo:(ObjectType)anObject inRange:(NSRange)range;
- (void)removeObjectIdenticalTo:(ObjectType)anObject;
- (void)removeObjectsFromIndices:(NSUInteger *)indices numIndices:(NSUInteger)cnt NS_DEPRECATED(10_0, 10_6, 2_0, 4_0);
- (void)removeObjectsInArray:(NSArray<ObjectType> *)otherArray;
- (void)removeObjectsInRange:(NSRange)range;
- (void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray<ObjectType> *)otherArray range:(NSRange)otherRange;
- (void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray<ObjectType> *)otherArray;
- (void)setArray:(NSArray<ObjectType> *)otherArray;
- (void)sortUsingFunction:(NSInteger (NS_NOESCAPE *)(ObjectType, ObjectType, void * _Nullable))compare context:(nullable void *)context;
- (void)sortUsingSelector:(SEL)comparator; - (void)insertObjects:(NSArray<ObjectType> *)objects atIndexes:(NSIndexSet *)indexes;
- (void)removeObjectsAtIndexes:(NSIndexSet *)indexes;
- (void)replaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray<ObjectType> *)objects; - (void)setObject:(ObjectType)obj atIndexedSubscript:(NSUInteger)idx NS_AVAILABLE(10_8, 6_0); - (void)sortUsingComparator:(NSComparator NS_NOESCAPE)cmptr NS_AVAILABLE(10_6, 4_0);
- (void)sortWithOptions:(NSSortOptions)opts usingComparator:(NSComparator NS_NOESCAPE)cmptr NS_AVAILABLE(10_6, 4_0); @end @interface NSMutableArray<ObjectType> (NSMutableArrayCreation) + (instancetype)arrayWithCapacity:(NSUInteger)numItems; + (nullable NSMutableArray<ObjectType> *)arrayWithContentsOfFile:(NSString *)path;
+ (nullable NSMutableArray<ObjectType> *)arrayWithContentsOfURL:(NSURL *)url;
- (nullable NSMutableArray<ObjectType> *)initWithContentsOfFile:(NSString *)path;
- (nullable NSMutableArray<ObjectType> *)initWithContentsOfURL:(NSURL *)url;

OC温习四:数组的更多相关文章

  1. iOS开发-OC语言 (四)数组

    知识点 1.NSArray 2.NSMutableArray 1.数组的基本用法: 2.数组的遍历 3.数组排序 ===========   NSArray  不可变数组  ============= ...

  2. Oc中的数组

    ========================== 数组 ========================== 一.认识数组 oc中可以把NSObject对象的子类放到数组这个集合中,但是int.f ...

  3. OC基础 可变数组与不可变数组的使用

    OC基础 可变数组与不可变数组的使用 1.不可变数组 1.1不可变数组的创建 //实例方法 NSArray *array = [[NSArray alloc] initWithObjects:&quo ...

  4. OC第四课

    主要内容:NSString.NSArray.NSNumber 一.苹果公司的帮助文档(API) 学会查看API对于后续的编程有很好的帮助 进入方法: Xcode ->Help -> Doc ...

  5. JS学习笔记 (四) 数组进阶

    1.基本知识 1.数组是值的有序集合.每个值叫做一个元素,而每个元素在数组中的位置称为索引,以数字表示,以0开始. 2.数组是无类型的.数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的 ...

  6. Java基础复习笔记系列 四 数组

    Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...

  7. OC第四节——NSDictionary和NSMutableDictionary

    NSDictionary    1.什么是字典        字典是也是一种集合结构,功能与我们现实中的字典工具一样    2.字典的元素是什么        任意类型的对象地址构成键值对    3. ...

  8. oc 中四种实例变量的范围类型@private@protected@public@package

    To enforce the ability of an object to hide its data, the compiler limits the scope of instance vari ...

  9. oc随笔四:NSString、NSNumber

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...

随机推荐

  1. 获取当前目录 文件输出html 网页查看

    @echo off setlocal set LISTFILE=list.html echo MAKING LISTFILE … (PLEASE WAIT) echo ^<!doctype ht ...

  2. 洛谷 P2894 [USACO08FEB]酒店Hotel

    题目描述 The cows are journeying north to Thunder Bay in Canada to gain cultural enrichment and enjoy a ...

  3. 1-2 编程基础 GDB程序调试

    简介 GDB是GNU发布的一款功能强大的程序调试工具.GDB主要完成下面三个方面的功能: 1.启动被调试程序 2.让被调试的程序在指定的位置停住. 3.当程序被停住时,可以检查程序状态(如变量值). ...

  4. CAD交互绘制矩形框(网页版)

    主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...

  5. Hydraulic Motor Manufacturers - What Is A Cycloidal Hydraulic Motor?

    The     Hydraulic Motor manufacturers    stated that the cycloidal hydraulic motor is fixedly connec ...

  6. PHP15 Smarty模板

    学习目标 Smarty基本概念 Smarty安装和配置 Smarty模板设计 Smarty流程控制 Smarty基本概念 一种模板引擎,在系统中进行预处理和过滤数据.是主流的PHP模板引擎,此外PHP ...

  7. 第1节 flume:4、离线项目处理的整个架构图;5、flume的基本介绍;

    第1节 flume:4.离线项目处理的整个架构图 辅助系统工具:flume,azkaban,sqoop. 在一个完整的离线大数据处理系统中,除了hdfs+mapreduce+hive组成分析系统的核心 ...

  8. sftp ftp文件同步方案

    sftp ftp文件同步方案 1. 需求 1.1实现网关服务器的ftp服务器的/batchFileRequest目录下文件向徽商所使用的sftp服务器的/batchFileRequest目录同步文件 ...

  9. 【简●解】[ZJOI2005]午餐

    [简●解][ZJOI2005]午餐 [关键词] \(DP\) 排序/贪心 [分析] 首先,一个很明显的贪心思路,就是吃的慢的人先打饭.所以把数据按吃饭时间从大到小排一遍序. 根据\(dp\)的尿性,比 ...

  10. 牛客OI赛制测试赛2(0906)

    牛客OI赛制测试赛2(0906) A :无序组数 题目描述 给出一个二元组(A,B) 求出无序二元组(a,b) 使得(a|A,b|B)的组数 无序意思就是(a,b)和(b,a) 算一组. 输入描述: ...