我开发iPhone应用程序,在更新到sdk 3.0后,我在链接时遇到CFWriteStreamCreateWithFTPURL错误。这是我调用以获取错误的代码。
streamInfo.writeStream = CFWriteStreamCreateWithFTPURL(NULL, urlRefWrite);
我有一个想法,它可以使用extern“C”来解决,但在使用Google搜索后,我还没有找到解决问题的方法。有什么想法吗?
提前致谢
答案 0 :(得分:9)
extern“C”可能会成功。我可以通过在实现和头文件声明周围做这样的事情来获得C函数来编译和链接。这是一个简单的例子:
#if __cplusplus
extern "C" {
#endif
/// converts a degree value to radians
double DegreesToRadians(double degrees);
/// converts radian value to degrees
double RadiansToDegrees(double radians);
#if __cplusplus
} // Extern C
#endif
实施档案:
#import "Math.h"
#if __cplusplus
extern "C" {
#endif
double DegreesToRadians(double degrees) {return degrees * M_PI / 180;};
double RadiansToDegrees(double radians) {return radians * 180/M_PI;};
#if __cplusplus
} //Extern C
#endif
答案 1 :(得分:3)
您永远不必在Objective-C项目中使用extern "C"
。这是因为Objective-C是C的严格超集。