Звучит так, как вы хотите приблизительное / нечеткое совпадение строк , где вместо прямой функции isEqual:
, которая возвращает BOOL
на основе точного соответствия, у вас есть две функции (на NSString
), с прототипами по направлениям:
- (NSUInteger)distanceToString:(NSString *)otherString;
- (BOOL)isSufficientlyCloseTo:(NSString *)otherString;
Второй - это удобная оболочка, реализованная примерно так:
- (BOOL)isSufficientlyCloseTo:(NSString *)otherString {
return [self distanceToString:otherString] <= MY_MAGIC_THRESHOLD;
}
Таким образом, вам в основном нужна функция расстояния и порог равенства. Простым примером функции расстояния будет расстояние Левенштейна - затем вам нужно экспериментально выбрать значение для MY_MAGIC_THRESHOLD
, чтобы вы были довольны результатом.