2014-09-18 6 views
0

В Objective C у меня есть NSMutableString, и я обращаюсь к его символам с помощью метода characterAtIndex: для некоторых манипуляций.Как завершается NSString/NSMutableString?

Для этого, я также должен проверить завершающий характер примерно так:

NSMutableString *str = [[NSMutableString alloc]initWithString:@"hello"]; 
for(int i = 0; [str characterAtIndex:i] != '???'; i++) // ??? = terminator 
    //do something 

Итак, как приведенный выше код определяет, я запутался о завершающем характере что NSString/NSMutableString использует. Это \0 как в char * или что-то еще?

Любая помощь на это оценивается.

ответ

4

Терминатор не существует. Вы используете метод length.

for (NSUInteger i = 0; i < str.length; i++) { 
    unichar ch = [str characterAtIndex:i]; 
    // do stuff 
} 
+0

Да, это сработало хорошо, но я все еще смущен как то, как компилятор будет знать сам, о котором идет речь. Допустим, у нас есть строка «abc», а затем как компилятор знает, что «c» - последний символ. Использует ли она также 'length' строки для ее определения? – Sibir

+0

Компилятор не знает. Это функция времени выполнения, предоставляемая классом 'NSString'. – rmaddy