objective-c – NSIntegers的NSArray类别的快速枚举
发布时间:2020-12-16 04:55:28 所属栏目:百科 来源:网络整理
导读:由于我经常使用NSInteger数组,我为NSArray编写了一个类别(也是NSMutableArray的一个类别),它添加了诸如integerAtIndex:,arrayByAddingInteger:等方法.这些方法负责在NSNumber对象中包装/解包NSInteger. 我想知道的是,是否有一种方法可以增强我的类别,以便
由于我经常使用NSInteger数组,我为NSArray编写了一个类别(也是NSMutableArray的一个类别),它添加了诸如integerAtIndex:,arrayByAddingInteger:等方法.这些方法负责在NSNumber对象中包装/解包NSInteger.
我想知道的是,是否有一种方法可以增强我的类别,以便我可以对NSIntegers进行快速枚举.我想能够写: NSArray* arrayOfIntegers; . . . for(NSInteger nextInteger in arrayOfIntegers) { } ….然后,“nextInteger”被拉出幕后的NSNumber对象.我可以这样做吗? 解决方法
我怀疑使用NSFastEnumeration有一个干净的方法,因为它在很大程度上取决于nextObject方法.
但是,您可以通过为其添加块方法以另一种方式执行此操作: @interface NSArray (Integers) -(void)eachInteger:(void(^)(NSInteger))block; @end @implementation NSArray (Integers) -(void)eachInteger:(void(^)(NSInteger))block { for (NSNumber *num in self) { block(num.integerValue); } } @end 这样,您可以以类似的方式在代码中使用它: NSArray *arr = [NSArray arrayWithObjects:[NSNumber numberWithInt:23],[NSNumber numberWithInt:42],nil]; ... [arr eachInteger:^(NSInteger i) { NSLog(@"The int is %i",i); }]; // => // The int is 23 // The int is 42 也许你可能想看看Lumumba Framework上的NSArray categories,这恰好是我写的:D (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- MVC2与MVC3的Ajax无刷新提交
- objective-c – 如何从NSInvocation获取NSString结果?
- Oracle 12c多租户特性详解:PDB 的出与入 InAndOut
- c# – 部署到GAC
- oracle 12c rac关闭pdb出现ORA-01155异常
- C++: string 中find函数的用法以及string::npos的含义
- 高性能nosql ledisdb 设计与实现(2)
- Cocos2d-x 3.2 android实现原生对话框
- c# – 是否可以为字符串实现ExpressionTree.GreaterThan等,
- ajax – 跨平台丰富用户界面开发有哪些可用选项?