Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Objective-C中反转NSArray?

如何在Objective-C中反转NSArray?

提问于 2017-12-26 08:12:57
回答 2关注 0查看 1.6K

我需要扭转我的NSArray。举个例子:[1,2,3,4,5] 必须成为: [5,4,3,2,1]达到这个目标的最好方法是什么?

回答 2

习惯痛苦

发布于 2017-12-26 08:16:25

有一个更简单的解决方案,如果你利用NSArray的内置的reverseObjectEnumerator方法和NSEnumerator的allObjects方法:

NSArray* reversedArray = [[startArray reverseObjectEnumerator] allObjects];

allObjects被记录为按照以下顺序返回一个数组,其中尚未遍历nextObject的对象:

该数组按枚举顺序包含枚举数的所有剩余对象。

幽幽77

发布于 2017-12-26 08:14:07

为了获得一个数组的颠倒的副本,看看danielpunkass的解决方案使用reverseObjectEnumerator。

为了反转可变数组,可以将以下类别添加到代码中:

@implementation NSMutableArray (Reverse)

- (void)reverse {

if ([self count] <= 1)

return;

NSUInteger i = 0;

NSUInteger j = [self count] - 1;

while (i < j) {

[self exchangeObjectAtIndex:i

withObjectAtIndex:j];

i++;

j--;

}

}

@end

和开发者交流更多问题细节吧,去 写回答
相关文章
Objective-C中NSArray类的解读
    NSArray数组类是Objective-C语言中常用的也是重要的一个类,除了开发中常用到的一些基础功能,NSArray及其相关类中还封装了许多更加强大的功能。有机会总结了一下,与需要的朋友们分享。
珲少
2018/08/15
1.5K0
Objective-C之NSArray学习笔记(IOS 9.1)
---- NSArray类简介 有序且只可以存储Objective-C对象的数组 初始化后,内容不可变,长度也不可变,不能进行增、删、改操作 不能存放nil (nil是标志数组的结束) 在MRC模式下,会发送retain消息于每个加入数组中的元素都进行保持,数组被释放的时候会发送release消息 ---- 属性表(@property) @property 描述 @property(readonly) NSUInteger count 数组元素的个数 @property(nonatomic,
半纸渊
2018/09/04
7220
Objective-C遍历数组NSArray的3种方法
Objective-C遍历数组的方法有很多,各种遍历方法效率不尽相同,系统内部会进行不同的优化
用户8671053
2021/10/29
5830
如何在 Python 中反转字符串?
在 Python 中,字符串是 Unicode 字符的序列,尽管 Python 支持许多用于字符串操作的函数,但它没有明确设计用于反转字符串的内置函数或方法。
网络技术联盟站
2022/03/15
3.2K0
NSArray 和 KVC
Theocoacao有篇不错的介绍NSArray和KVC的文章,我给粗略翻译了一下。
EltonZheng
2021/01/22
4080
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词
-- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 String 开头的方法;
韩曙亮
2023/03/27
1.4K0
将Array、Dictionary等集合类的序列化和反序列化
Objective-C的集合类序列化到文件中或者从文件中反序列化其实很简单,请看下面的示例代码:
EltonZheng
2021/01/26
5370
Objective-C中的hasPrefix
Objective-C中的hasPrefix hasPrefix:方法的功能是判断创建的字符串内容是否以某个字符开始,其语法形式如下:    -(BOOL)hasPrefix:(NSString*)aString;   其中,(NSString *)aString;用来指定字符串。该方法的返回值为BOOL,当BOOL为YES或者为1时,则字符串是以某个字符开始;当BOOL为NO或者为0时,则字符串不是以某个字符开始。  【示例】以下程序通过使用hasPrefix:方法来判断使用stringWithCSt
猿人谷
2018/01/17
1K0
NSArray 排序方法的实现
Compare method Either you implement a compare-method for your object: -(NSComparisonResult)compare:(Person*)otherObject {return[self.birthDate compare:otherObject.birthDate];}NSArray*sortedArray; sortedArray =[drinkDetails sortedArrayUsingSelector:@selecto
阿新
2018/04/12
7160
iOSNSSet 和 NSArray的区别
●NSSet , NSMutableSet是无序的集合,在内存中存储方式是不连续的 ●通过anyObject来访问单个元素 ●遍历NSSet中的每个元素。通过forin循环来遍历
赵哥窟
2020/06/16
7720
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
AiDBA宝典
2019/09/30
42.5K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
Objective-C中的集合类
       下面详细的介绍Objective-C中的集合类以及每个集合类的用法,学过其他面向对象编程语言的小伙伴们看到OC的集合类会有种莫名的亲切感,理解起来问题不大,可以类比Java中的集合类去学习。 在Objective-C中的集合类中主要包括不可变的数组--NSArray,  可变的数组--NSMutableArray,   不可变的字典--NSDictionary,    可变的字典--NSMutableDictionary, 不可变的集合--NSSet,可变的集合--NSMutableSet。
lizelu
2018/01/11
1.4K0
Objective-C中的属性机制
        Objective-C 2.0中的属性机制为我们提供了便捷的获取和设置实例变量的方式,也可以说属性为我们提供了一个默认的设置器和访问器的实现。在学习OC中属性之前我们先要知道为什么要为变量实现getter和setter方法,我们先来了解一下实例的作用域。     实例变量的作用域如下:         1. @public : 共有的,该实例变量谁都可以访问;         2.@protected :受保护的,该实例变量只能在该类和其子类内访问,父类protected的实例变量在子类中
lizelu
2018/01/12
1.5K0
Objective-C中的内存管理
        在编程语言中是少不了对内存的管理的,内存对于计算机来说是宝贵的资源,所以对使用不到的资源进行回收是很有必要的。OC中使用引用计数和垃圾回收来管理内存,在OC中为每个对象分配一个引用计数器,当对象刚刚被创建时其初始值为1,当有某段代码需要访问一个对象是时,会将该对象的引用计数器加1(通过retain来实现);当访问一个对象结束时,会将该对象的引用计数器减1(通过release来实现);当计数器为0时,该对象占用的内存空间会被收回。在NSObject类有一个retainCount方法,调用该方法
lizelu
2018/01/11
1K0
Objective-C中NSInvocation的使用
第一个PerformaceSelector比较常用, 也比较简单。 但是这个方式最多只能传递2个参数
周希
2019/10/15
9620
【IOS】IOS开发问题解决方法索引(三)
http://www.cnblogs.com/snandy/archive/2011/03/04/1970162.html
江中散人_Jun
2022/03/08
1K0
【IOS】IOS开发问题解决方法索引(三)
iOS_Objective-C编程规范
如果一个函数除空行和注释以外的内容超过了80 行,则可以思考,能否在不破坏程序结构的前提下,对函数进行拆分。
mikimo
2022/07/20
8290
iOS_Objective-C编程规范
Objective-C中实现Swift中的defer
defer 所声明的 block 会在当前代码执行退出后被调用。正因为它提供了一种延时调用的方式,所以一般会被用来做资源释放或者销毁,这在某个函数有多个返回出口的时候特别有用。
韦弦zhy
2019/12/26
1.5K0
Objective-C中实现Swift中的defer
Objective-C中切分数组
在很多脚本语言如ruby,python中都有将字符串切分成数组或者将数组元素以某个间隔字符串间隔形成新的数组。 其实NSArray也提供了这样的功能。
EltonZheng
2021/01/26
6440
点击加载更多

相似问题

Python的反转和反转映射?

2425

如何按字母顺序排列NSArray?

1297

如何将NSMutableArray转换为NSArray?

2419

录制中如设置gif动图?

0262

什么是Objective-C中的typedef枚举?

2397
相关问答用户
中建数科 | 技术总监架构部总经理擅长3个领域
公司公司公司公司公司公司 | 职务职务职务职务职务职务擅长3个领域
腾讯云TDP | 高级后端开发工程师擅长3个领域
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档