Пустой символ в Objective-C - PullRequest
       25

Пустой символ в Objective-C

1 голос
/ 01 февраля 2010

Я создаю некоторый код, который будет находить пробел между символами и использую символы перед пробелом и те, что после него.Эти символы хранятся в строке NSString.Вот что у меня есть, но я не вижу пустой символ.

    NSString *tempTitle = self.title;
unsigned int indexOfSpace; // Holds the index of the character with the space
unsigned int titleLength = (unsigned int)self.title.length; // Holds the length of the title
for (unsigned int count = 0; count < titleLength; count++)
{
    if ([tempTitle characterAtIndex:count] == "") // If the character at the index is blank, store this and stop
    {
        indexOfSpace == count;
    }
    else // Else, we keep on rollin'
    {
        NSLog(@"We're on character: %c", [tempTitle characterAtIndex:count]);
    }
}

Я пробовал nil, пустую строку ("") и "", но безрезультатно.Есть идеи?

1 Ответ

4 голосов
/ 01 февраля 2010

Ваш пробел должен быть в одинарных кавычках, а не в двойных. Одинарные кавычки дают вам тип символа в C. (Двойные кавычки создают строковый литерал, который по существу функционирует как char * и никогда не пройдет ваше сравнение.)

-[NSString characterAtIndex:] возвращает тип unichar, который является unsigned short, так что вы должны иметь возможность сравнить это непосредственно с пробелом ' ', если вы этого хотите.

Обратите внимание, что ноль и пустая строка здесь бесполезны - они также не являются символами, и в любом случае ваша строка никогда не будет содержать их.

Вы также должны увидеть методы NSString для непосредственного поиска символов в строках, например, -[NSString rangeOfString:] и его кузены. Это не позволяет вам писать цикл самостоятельно, хотя, к сожалению, он немного синтаксически многословен.

...