Обнаружить апостроф в строке NSString? - PullRequest
4 голосов
/ 20 августа 2010

Я использую Gamekit для отправки данных по Bluetooth между двумя устройствами. Я хочу получить имя устройства, которое его отправило, но если имя «iPhone Боба», я хочу отключить «iPhone». Сначала я проверяю, нет ли конца в «iPhone» или «iPod Touch».

 if ([name hasSuffix:@" iPhone"]) 
 {
  name = [name substringToIndex:[name length]-7];
 }
 else if ([name hasSuffix:@" iPod Touch"])
 {
  name = [name substringToIndex:[name length]-11];
 }

Но когда я делаю то же самое для "s", оно никогда не возвращает истину. Апостроф также выглядит немного иначе, чем апостроф по умолчанию.

if ([name hasSuffix:@"'s"]) 
{
  name = [name substringToIndex:[name length]-2];
}

Есть ли какая-то хитрость в обнаружении апострофов? Есть ли способ, которым я могу это сделать?

EDIT: Апостроф слева - это то, что имя содержит, но не регистрируется с hasSuffix: @ "s". Апостроф справа - это апостроф, который я добавил.

alt text

Ответы [ 2 ]

1 голос
/ 20 августа 2010

Это может быть случай закодированной строки. Вы должны убедиться, что строка об этом случае

's или ´s ‘s или какой-либо другой символ.

У вас может быть другой персонаж, который вызывает у вас проблемы.

Это мое предположение. Надеясь, что это поможет вам выяснить вашу проблему.

0 голосов
/ 20 августа 2010

Вы хотите метод rangeOfString: в NSString.

if ([name rangeOfString:@"'"].location != NSNotFound)
{
    ...
}
...