Приведение NSObject к NSString - PullRequest
6 голосов
/ 06 апреля 2009

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

NSLog(@"lowerCaseString is: %@", [object lowercaseString]);

Это работает с предупреждением: «NSObject» может не отвечать на «-lowerCaseString»

NSLog(@"lowerCaseString is: %@", [(NSString)object lowercaseString]);

Выдает ошибку: запрошено преобразование в нескалярный тип

Ответы [ 2 ]

21 голосов
/ 06 апреля 2009

Я считаю, что это будет делать то, что вам нужно:

NSLog(@"lowerCaseString is: %@", [(NSString *)object lowercaseString]);

Примечание. Я только что добавил * во вторую строку кода, чтобы сделать указатель на NSString. Надеюсь, это поможет!

Адам

3 голосов
/ 06 апреля 2009

Почему объект объявляется как NSObject, если он должен быть строкой NSString? Если вы намереваетесь вызвать для него методы NSString, объявите его как NSString или оставьте его как идентификатор. Тогда вы не получите ошибок.

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