从不兼容的指针类型返回

时间:2010-08-25 13:45:15

标签: objective-c pointers

以下代码生成不兼容的指针类型错误:

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

我是Objective-C和编程的新手,所以有人可以帮我解决这个错误吗?

3 个答案:

答案 0 :(得分:3)

NSString *char *(或Objective C术语中的“C-string”)不同。你不能像这样隐式地将指针从一个转换为另一个。您必须使用cStringUsingEncoding之类的方法。此外,NSString是不可变的,因此您必须返回const char *

或者,您只需返回NSString *而不是char *

答案 1 :(得分:0)

将返回值更改为NSString *,您应该没问题。您指定了char *的返回值,但实际上返回了NSString *。

答案 2 :(得分:0)

将其更改为:

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

char *不是NSString