相关疑难解决方法(0)

在目标C中NSMutableArray到NSArray

可能重复:
如何将NSMutableArray转换为NSArray?

如何在目标C中将NSMutableArray转换为NSArray,即不使用逐个添加对象的循环.

objective-c nsmutablearray nsarray

8
推荐指数
1
解决办法
1万
查看次数

向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)

iphone objective-c categories

3
推荐指数
1
解决办法
3557
查看次数

最佳实践:如果返回类型是 NSArray,则返回 mutableArray.copy 或 mutableArray

- (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 上的一个类别

objective-c

2
推荐指数
1
解决办法
1604
查看次数