好的,所以我正在建立一本书的索引,一切似乎都正常工作,期望我的比较函数找出这个词是否已经在我的数组中,我做了一个基本的比较函数,要么返回 1,- 1 或 0。我知道有一个 NSComparisonResults 但到目前为止我对此更满意。无论如何,我希望该函数将 _wordBeingCatalog 与我的 UniqueWord 类中的另一个词进行比较,这就是我在课堂上所拥有的,几乎涉及我的方法
-(instancetype)initWithString:(NSString*)wordBeingCataloged
andline:(NSNumber*)currentLine
{
self = [super init];
if(self == nil) return nil;
_wordBeingCataloged=wordBeingCataloged;
_count=0;
_LinenumberWhereWordisFound= [[NSMutableArray alloc]init];
[self addALineNumberToCurrentLineNumberArray:currentLine];//This is a function in c++ it looks like addline(currentline); i dont know if i did it right
return self;
}
-(NSInteger) compareCurrent:(UniqueWord *)word withAnother:(UniqueWord *)text{
if ([word isGreaterThan:text] )//crashes here
{
return 1;
}
if([text isGreaterThan:word]){
return -1;
}
return 0;
}
-(void) addALineNumberToCurrentLineNumberArray:(NSNumber *)currentLine{
NSInteger index=[ self newIndexUsing:currentLine];
++_count;
if(index==-1)
return;
[_LinenumberWhereWordisFound insertObject:currentLine atIndex:(0+index)];
}
当我运行我的方法时,我会导致
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '- [UniqueWord compare:]: unrecognized selector sent to instance 0x100201740'
我的信念是,它不是在比较我在数组中的两个字符串,而是在比较其他东西,有人可以解释我收到的问题吗?
顺便说一句,程序在比较函数中的第一个 if 语句处停止