NSLog выводит правильное значение только тогда, когда у меня есть предупреждение - PullRequest
1 голос
/ 17 мая 2011

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

Фрагмент кода

MyObject *object = [self.objects objectAtIndex:indexPath.row];
NSString *myString = object.myString;
NSLog(myString); // format not a string literal and no formal arguments
NSLog(@"formatted = %s", myString);

выход

2011-05-16 13:06:51.137 MyProgram[917:207] thisValueIsGood
2011-05-16 13:06:51.138 MyProgram[917:207] formatted = `å

Эта проблема связана с другими функциями, использующими эту последнюю строку. Когда я объединяю эту строку с другими строками, я получаю еще больше мусора.

1 Ответ

6 голосов
/ 17 мая 2011

NSString - объект, вместо %s используйте %@.

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