#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 здесь .