初始化会从objective-c / cocoa中的指针目标类型错误中丢弃限定符

时间:2011-02-28 06:47:32

标签: objective-c cocoa

为了打印出文件中的内容,我有以下代码。

FILE *fp = fopen(cString, "w+");
NSString* message = [NSString stringWithFormat:@":SLEEP: %@:%@\n", ...];
char* cMessage = [message UTF8String]; <--  warning 
fprintf(fp, cMessage); <-- warning
fclose(fp);

但是,我在Initialization discards qualifiers from pointer target type error中收到了char* cMessage,并发出Format not a string literal and no format argument警告。

代码出了什么问题?

1 个答案:

答案 0 :(得分:6)

-UTF8String会返回const char *,但您要将其分配到char *。因此,您将丢弃const限定符。

对于fprintf,您可能应该这样做:

fprintf(fp, "%s", cMessage);