我的代码中有一些第三方,例如World Magnetic Model或GeoTrans。当编译为命令行二进制文件时,两者都读取当前目录中的文件,这没有问题。但是,当我在iOS项目中包含该代码时,出于某种原因我无法完成这项工作。
在第三方代码中,使用fopen读取文件,如:
MODELFILE = fopen(filename, "r");
其中filename类似于“wmm.cof”,而MODELFILE最终为NULL(0x0)。
当我检查我的应用程序包时,我确实在与我的应用程序的二进制文件相同的(根)目录中看到一个名为wmm.cof的文件,但没有运气。
我该如何处理?
谢谢!
答案 0 :(得分:0)
NSString *path = [[NSBundle mainBundle] pathForResource:@"wmm" ofType:@"cof"];
MODELFILE = fopen([path cStringUsingEncoding:NSUTF8StringEncoding], "r");
如果您想保留代码处于可移植状态的文件,您可能希望将objc代码移动到单独的文件中,然后返回const char *