以下代码生成不兼容的指针类型错误:
char *PLURAL(int objects, NSString *singluar, NSString *pluralised) {
return objects ==1 ? singluar:pluralised;}
我是Objective-C和编程的新手,所以有人可以帮我解决这个错误吗?
答案 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
!