我试图重复使用另一个项目中的代码,但在复制类时,它在新项目中生成了编译器错误,但是当它在另一个项目中时,它工作得很好。相同的代码在一个项目中生成错误,但不是另一个项目
该错误是
Cannot initialize a parameter of type 'const uint8_t *' (aka 'const unsigned char *') with an rvalue of type 'const void *'
和代码是
[outputStream write:[userdata bytes] maxLength:[userdata length]];
的OutputStream是NSOutputStream,和userData是一个NSData对象。 两个项目中都使用围绕此语句的相同代码。
这两个项目都针对相同的目标OS(iOS 5.0)和archetecture(armv7)进行编译,并且都添加了相同的框架。
我也尝试清理该项目,并重新构建它。同样的问题。
任何帮助,将不胜感激。
您是否尝试从编译器标志中删除-Werr,-Wall,-Wextra或-pedantic开关? – 2012-01-27 21:06:45
我没有将它们添加到任何一个项目中,如果将它们添加到一个项目中,Xcode可能会将它们添加到两个项目中。 – magmastonealex 2012-01-28 00:32:29
在很晚才跳过,并且遇到类似的问题,事实证明,如果没有人调用方法,则可能无法编译方法。所以可能有一个项目不会调用特定的代码,另一个可以。 [详细](http://stackoverflow.com/a/15213415/1179377)。 – Izhaki 2013-03-05 01:16:31