NSString сопоставляет параметры с NSDiacriticInsensitiveSearch;

#ios #ios4 #nsstring #string-comparison

#iOS #ios4 #nsstring #сравнение строк

Вопрос:

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

  • Строка 1 взята из файла.
  • Строка 2 находится в 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:

Проверьте документацию 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...
    }
}
  

Комментарии:

1. Спасибо. Что означает NSOrderedAscending??

2. Я настоятельно рекомендую вам прочитать документацию Apple, касающуюся сравнения с NSString здесь .