奇妙なソート エラーが表示されます。wordArrayDuplicates という配列に範囲のリストがあります。範囲の場所に基づいてこの配列をソートする必要があるため、文字列を NSNumber に変換しますが、比較しません。
*キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。理由: '-[__NSCFString sortedArrayUsingComparator:]:
- (NSArray *)sortedArray {
if (!sortedArray) {
sortedArray = [[NSArray alloc]init];
}
return [wordArrayDuplicates sortedArrayUsingComparator:(NSComparator)^(id obj1, id obj2){
NSNumber * lastName1 = [NSNumber numberWithInt:NSRangeFromString(obj1).location];
NSNumber * lastName2 = [NSNumber numberWithInt:NSRangeFromString(obj2).location];
return [lastName1 compare:lastName2]; }];
}
-(void)beginGoingThroughDuplicatesAtWordIndex:{
if (index == 1) {[self loadDuplicates];}
[string addAttribute:(id)kCTForegroundColorAttributeName
value:(id)[UIColor blackColor].CGColor
range:NSMakeRange(0, string.length)];
BOOL shouldContinue = YES;
while (shouldContinue == YES && index<[[self sortedArray] count]) {
if (![[tv.text substringWithRange:NSRangeFromString([[self sortedArray] objectAtIndex:index-1])] isEqualToString:[tv.text substringWithRange:NSRangeFromString([[self sortedArray] objectAtIndex:index])]]) {
shouldContinue = NO;
}
[string addAttribute:(id)kCTForegroundColorAttributeName
value:(id)[UIColor redColor].CGColor
range:NSRangeFromString([sortedArray objectAtIndex:index-1])];
index++;
}
textlayer.string = string;
}