Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>You may need to consider certain characters with accents as well such as è, é, ò, à, ù, ì.</p> <p>So I slightly modified your code to incorporate this. Your code is a great contribution to all of us iphone developers</p> <pre><code> - (NSString*)comparableString:(NSString*)str { if (str == nil) return nil; else if ([str length] == 0) return [NSString stringWithString:str]; NSCharacterSet* numbersSet = [NSCharacterSet decimalDigitCharacterSet]; if ([str rangeOfCharacterFromSet:numbersSet options:0 range:NSMakeRange(0, 1)].location != NSNotFound) return [NSString stringWithString:str]; NSRange range = NSMakeRange(0, [str length]); if ([str compare:@"a " options:(NSAnchoredSearch|NSCaseInsensitiveSearch) range:NSMakeRange(0, 2)] == NSOrderedSame) range.location = 2; else if ([str compare:@"an " options:(NSAnchoredSearch|NSCaseInsensitiveSearch) range:NSMakeRange(0, 3)] == NSOrderedSame) range.location = 3; else if ([str compare:@"the " options:(NSAnchoredSearch|NSCaseInsensitiveSearch) range:NSMakeRange(0, 4)] == NSOrderedSame) range.location = 4; range.length -= range.location; NSCharacterSet* lettersSet = [NSCharacterSet letterCharacterSet]; NSUInteger letterOffset = [str rangeOfCharacterFromSet:lettersSet options:0 range:range].location; if (letterOffset == NSNotFound) return [NSString stringWithString:str]; letterOffset -= range.location; range.location += letterOffset; range.length -= letterOffset; //my modification starts here......... NSString * finalString = [str substringWithRange:range]; NSString * firstCharString = [finalString substringToIndex:1]; NSData * encodedData = [firstCharString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; NSString * encodedString = [[NSString alloc] initWithBytes:[encodedData bytes] length:[encodedData length] encoding:NSASCIIStringEncoding]; if ([encodedString isEqualToString:@"?"]) { return finalString; } NSString * finalProcessedString = [finalString stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:encodedString]; [encodedString release]; return finalProcessedString; } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload