NSStringCompareOptions with NSDiacriticInsensitiveSearch; - PullRequest
1 голос
/ 11 мая 2011

Я пытаюсь сравнить две строки

  • String1 из файла.
  • String2 находится в NSArray (предопределенный список)

Я хочу сравнить две строки и, если это совпадение, может сделать NSLog

NSStringCompareOptions compareOptions = NSDiacriticInsensitiveSearch;
NSArray* countryIndex = [[NSArray alloc] initWithObjects:@"alpha",
                                                         @"beta",
                                                         @"gamma",
                                                         nil];

for (NSString* element in countryIndex) {
    NSComparisonResult result = [(NSString *)country compare:element options:compareOptions];
}

Так что я очень растерялся, что это за результат?(номер, класс и т. д.)

1 Ответ

2 голосов
/ 11 мая 2011

Проверьте доступную документацию Apple здесь .

Если вы выполните поиск по NSComparisonResult, вы увидите, что это перечисление, содержащее константы, которые можно использовать, чтобы проверить, к чему привела операция сравнения

Вот краткий фрагмент связанного документа:

NSComparisonResult
These constants are used to indicate how items in a request are ordered.

enum {
   NSOrderedAscending = -1,
   NSOrderedSame,
   NSOrderedDescending
};
typedef NSInteger NSComparisonResult;

Например, чтобы использовать его в своем коде, вы можете сделать следующее:

NSStringCompareOptions  compareOptions = NSDiacriticInsensitiveSearch;
NSArray* countryIndex = [[NSArray alloc] initWithObjects:@"alpha", @"beta", @"gamma' nil];

for (NSString* element in countryIndex) {
    NSInteger result = [(NSString *)country compare:element options:compareOptions];
    if(NSOrderedAscending == result) {
        // Do something here...
    }
    else if (NSOrderedSame == result) {
        // Do another thing here if they match...
    }
    else {
        // Try something else...
    }
}
...