Почему NSString getCharacters не работает в xcode? - PullRequest
0 голосов
/ 30 июля 2011
-(void)myFunction {

        unichar myBuffer[5];
        NSRange range = {0, 3};
        NSString *string = [NSString alloc];
        string = @"123";
        [string getCharacters:myBuffer :range];
}

Получает предупреждение

!NSString может не отвечать на '-getCharacters ::'

, а затем выполняет SIGABRT при запуске.Зачем?????Или еще лучше, как мне заставить его работать?

1 Ответ

5 голосов
/ 30 июля 2011

Чтобы использовать getCharacters:range:, напишите следующую строку кода:

[string getCharacters:myBuffer range:range];

В Objective-C имена методов разделяются по аргументам (функция, которая унаследована от наследия Smalltalk).Итак, ваш исходный код пытался отправить сообщение с именем getCharacters: :, которое не найдено.Исправленная версия отправляет сообщение getCharacters: range:.

. Конструкция getCharacters:myBuffer сообщает, что первый аргумент getCharacters:range: равен myBuffer.Точно так же конструкция range:range говорит, что вторым аргументом является ваш NSRange с именем range.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...