我只是将我的代码从Objective-C切换到Objective-C++。除了两条线以外,一切都会顺利进行。Objective-C中的字符串
NSString * text1=[[NSString stringWithFormat:@"%.2f",ymax] UTF8String];
此行抱怨
error: cannot convert 'const char*' to 'NSString*' in initialization
与第一第二个错误是从线路:
CGContextShowTextAtPoint(context, 2, 8, text1, strlen(text1));
它抱怨
error: cannot convert 'NSString*' to 'const char*' for argument '1' to 'size_t strlen(const char*)'
有什么我错过了差异s在ObjC和ObjC++之间?
谢谢。这解决了我的问题,但为什么NSString在Obj-C中工作? – 2010-03-08 20:47:31
也许是因为指针转换在C中更为宽松.NSString *是一个指针,毕竟char *也是一个指针,所以它们在没有警告的情况下互相投射。这就是C++发明的静态类型检查。 – 2010-03-08 20:58:10