Апостроф Unichar Сравнение проблем - PullRequest
1 голос
/ 30 января 2011

Я сейчас смотрю на такие части строки, как:

            if (thisChar == 'a')
            [self a];

        else if (thisChar == 'b')
            [self b];

        else if (thisChar == 'c')
            [self c];

.........

        else if (thisChar == '0')
        [self zero];

    else if (thisChar == '1')
        [self one];

    else if (thisChar == '2')
        [self two];

    else if (thisChar == '3')
        [self three];

.........

            else if (thisChar == '.')
        [self period];

    else if (thisChar == ',')
        [self comma];

    else if (thisChar == '?')
        [self qmark];

Проблема возникает, хотя, когда я прихожу к

else if (thisChar == ''')
        [self three];

, я хочу получить знак (апостроф), но он не позволит мне это сделать.Я знаю причину, но не знаю, как это обойти.Будет ли эта помощь?

NSString *apostropheString = [[NSString alloc] initWithFormat:@"'"];

unichar apostrophe = [apostropheString characterAtIndex:0];

Могу ли я использовать isEqualToString?

if ([apostrophe isEqualToString: thisChar]) 

Любая помощь будет принята с благодарностью!


Я нашел способсделайте следующее:

1).Создайте строку NNString с одним символом, который является апострофом

NSString *apostropheString = [[NSString alloc] initWithFormat:@"'"];

2).Получите это, чтобы преобразовать это в unichar, названный "приложением", поскольку это индексировано нулями, и есть только один символ, индекс равен 0.

unichar app = [apostropheString characterAtIndex:0];

3).Затем я говорю, что «thisChar» равен «app», запускаем «qmark»

else if (thisChar == app)
        [self qmark];

Надеюсь, это поможет любому, кто столкнулся с такой же проблемой!

1 Ответ

3 голосов
/ 30 января 2011

Вы должны избежать апострофа с обратной косой чертой: '\''.

...