【发布时间】:2014-06-04 07:02:27
【问题描述】:
我有一个比较两个对象的方法:
- (NSComparisonResult)compare:(NSObject *)object1 to:(NSObject *)object2{
// do some stuff
return NSOrderedSame; // or NSOrderedAscending or NSOrderedDescending
}
这个方法被这样调用:
NSArray *sortedSyncedAufgaben = [syncedAufgabe sortedArrayUsingSelector:@selector(compare:to:)];
现在,当我在我的 iPhone 上运行它时,选择器所在的行中会出现“无法识别的选择器错误”:
* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[ImpfVorgang compare:to:]: unrecognized selector sent to instance 0x14ebf040”
怎么了?我以为每个参数都需要一个冒号?
【问题讨论】:
-
我们能看到整个错误信息吗?
-
该方法在哪里定义?
syncedAufgabe是哪个类的实例? -
@JoshCaswell 是的,在同一个类/视图控制器中
-
@NobodyNada
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ImpfVorgang compare:to:]: unrecognized selector sent to instance 0x14ebf040' -
@mradlmaier
compare:to:是否在 ImpfVorgang.m 中定义?
标签: ios objective-c selector