возврат из несовместимых типов указателей - PullRequest
0 голосов
/ 25 августа 2010

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

char *PLURAL(int objects, NSString *singluar, NSString *pluralised) {
return objects ==1 ? singluar:pluralised;}

Я новичок в Objective-C и программировании в целом, поэтому кто-нибудь может мне помочь с этой ошибкой?

Ответы [ 3 ]

3 голосов
/ 25 августа 2010

NSString * - это не то же самое, что char * (или "C-строка" в терминологии Objective C).Вы не можете конвертировать указатель из одного в другой неявным образом, как это.Вам придется использовать метод, подобный cStringUsingEncoding.Кроме того, NSString является неизменным, поэтому вам придется вернуть const char *.

В качестве альтернативы, вы можете просто вернуть NSString * вместо char *.

0 голосов
/ 25 августа 2010

Измените его на:

NSString *PLURAL(int objects, NSString *singluar, NSString *pluralised) {
    return objects ==1 ? singluar:pluralised;
}

char * не NSString!

0 голосов
/ 25 августа 2010

Измените возвращаемое значение на NSString *, и все будет в порядке. Вы указываете возвращаемое значение char *, но фактически возвращаете NSString *.

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