2013-08-10 2 views
-2

Я просмотрел несколько сообщений, чтобы ответить на мой вопрос, но я продолжаю получать ошибки.Как назначить characterAtIndex переменной NSString?

Я в основном имеют NSString, который содержит 2 символа ...

myString = @"ABC"; 

Все, что я хочу сделать, это назначить первый символ в MyString другой переменной NSString ...

NSString *firstChar; 
firstChar = [myString characterAtIndex:0]; 

I получите эту ошибку, когда я это сделаю:

Несовместимое целое число с преобразованием указателя, присвоенное 'unichar *' (aka 'unsigned short * ') из' unichar '(aka' unsigned short ')

Что я делаю неправильно?

+1

Является ли developer.apple.com снова или что-то еще? Тип возвращаемого символа 'characterAtIndex:' четко указан в документации ... –

+4

Этот вопрос не соответствует теме, поскольку речь идет о (не) чтении официальной документации. –

+0

Я читал официальную документацию, просто не понимал юниарской части. – Fred

ответ

2

NSStringcharacterAtIndex: возвращает unichar, а не строку, поэтому вы не можете просто назначить ее другой строке. Вам нужно создать строку из него первый:

NSString *myString = @"ABC"; 
unichar firstChar = [myString characterAtIndex:0]; 
NSString *string = [NSString stringWithCharacters:&firstChar length:1]; 

Конечно, как говорит DarkDust, вы можете также использовать substringWithRange:, чтобы получить строку из подобласти строки:

[myString subStringWithRange:NSMakeRange(0, 1)]; // to get the first character 
[myString subStringWithRange:NSMakeRange(1, 2)]; // to get the second and third characters 
1

characterAtIndex: метод возвращает unichar (целочисленное представление символа). Что вы хотите, это -[NSString substringWithRange:], например [myString substringWithRange:NSMakeRange(0, 1)];

Смежные вопросы