如何在目标C中将NSMutableArray转换为NSArray,即不使用逐个添加对象的循环.
我在NSArray中添加了一个带有辅助方法的类别进行排序.我的单元测试全部通过,但是当在模拟器中运行应用程序时,它会爆炸.这可能是因为NSMutableArray/NSCFArray 类集群的东西吗?
这是错误:'NSInvalidArgumentException',原因:'*** - [NSCFArray sortBySequenceAsc]:无法识别的选择器发送到实例0x489c1f0'
无论如何,将类别添加到NSArray和NSMutableArray的正确方法是什么?
@interface NSArray (Util)
- (NSArray *)sortBySequenceAsc;
@end
@implementation NSArray (Util)
- (NSArray *)sortBySequenceAsc {
//my custom sort code here
}
@end
Run Code Online (Sandbox Code Playgroud) - (NSArray *)map:(id (^)(id))block {
NSEnumerator * enumerator = self.objectEnumerator;
NSMutableArray * array = [NSMutableArray array];
id obj;
while ((obj = enumerator.nextObject)) {
[array addObject:(block(obj) ?: [NSNull null])];
}
return array (NSMutableArray *); or return array.copy (NSArray *)
}
Run Code Online (Sandbox Code Playgroud)
这是NSArray 上的一个类别