iphone - 向 NSArray 添加类别

标签 iphone objective-c categories

我使用辅助方法向 NSArray 添加了一个类别来进行排序。我的单元测试都通过了,但是当在模拟器中运行应用程序时它爆炸了。这可能是因为 NSMutableArray/NSCFArray class cluster stuff?

这里是错误: 'NSInvalidArgumentException',原因:'*** -[NSCFArray sortBySequenceAsc]:无法识别的选择器发送到实例 0x489c1f0'

无论如何,向 NSArray 和 NSMutableArray 添加类别的正确方法是什么?

@interface NSArray (Util) 
- (NSArray *)sortBySequenceAsc;
@end 

@implementation NSArray (Util)
- (NSArray *)sortBySequenceAsc {
    //my custom sort code here
}
@end

最佳答案

我已经多次在 NSArray 上使用类别,没有任何问题,所以我猜你的问题出在其他地方(因为你的类别看起来是正确的)。

由于您收到“无法识别的选择器”错误,这意味着运行时不知道您的类别,这意味着它没有链接到您的二进制文件中。我会检查并确保您的类别的 .m 文件包含在适当的目标中,清理并重新构建。

编辑:例如,this blog post展示了如何为 NSArray 创建类别以创建原始数组的随机副本。

编辑 #2:Apple 关于类别的文档使用了扩展 NSArray 功能的具体示例,所以我很难相信“推荐”的方法是将数组包装在帮助对象。 Citation (search the page for the five "NSArray" references)

关于iphone - 向 NSArray 添加类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1969999/

相关文章:

ios - 用平行线填充 UIBezierPath

ios - 将视频保存到 DocumentsDirectory

objective-c - 在 Core Graphics 中倾斜路径/形状

objective-c - setAnimationDidStopSelector : not getting called

php - 如何根据类别获取产品

iphone - 如何为 ImageView 数组中的三个 ImageView 添加 UIPanGestureRecognizer?

ios - iPhone 6 崩溃。无法获取原因

iphone - 拦截所有触摸事件

带标题的Android分类 ListView

php - Wordpress 当前类别的子类别列表