Objective-C: постоянная строка против динамической строки - PullRequest
0 голосов
/ 26 декабря 2011

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

// version 1
NSString* textureName;
textureName = @"texture_1";

// version 2
NSString* textureName;
textureName = [NSString stringWithFormat:@"texture_%i ",index];

Когда я пытаюсь получить элемент из своего словаря с ключом textureName, я получаю элемент с первой версией моего кода, но не получаю его со второй версией.

Отладчик показывает в версии 1 тип "_ NSCFConstantString", а в версии 2 - тип " _NSCFString".

Как я могу получить элемент из моего словаря с динамической строкой?

Ответы [ 2 ]

3 голосов
/ 26 декабря 2011

Проблема в том, что ваша вторая строка имеет пробел в конце. @"texture_1" не считается таким же, как @"texture_1 ".

2 голосов
/ 26 декабря 2011

Это может быть так же просто, как пропустить завершающий пробел

Посмотрите на последний символ в версии 2. В конце есть пробел. Удалите его, и оно должно работать.

// version 2
NSString* textureName;
textureName = [NSString stringWithFormat:@"texture_%i ",index];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...