-1

我对用 Object c++ 和 Xcode 5 编写的代码有疑问:

NSLog(@"%@",pathToFile);
    NSString *outputFileName = [NSTemporaryDirectory() stringByAppendingPathComponent:@"output.txt"];

    FILE* fileo = fopen([outputFileName UTF8String], "w");
    if (fileo) fclose(fileo);
    fileo = fopen([outputFileName UTF8String], "a");
    if (!fileo) { perror("fopen"); NSLog(@" Wrong"); } else { NSLog(@"Nothing Wrong"); }

    //Open the PDF source file:
    //  FILE* filei = fopen("c:\\pdf\\somepdf.pdf", "rb");
    FILE* filei = fopen([pathToFile UTF8String], "rb");
if (!filei) { perror("fopen"); NSLog(@" Wrong"); } else { NSLog(@"Nothing Wrong"); }

    if (filei && fileo)
    {

问题是 filei 每次都是 Nil 而我不知道为什么,!我认为问题是pathtoFile:它是:pathToFile

__NSCFString *  @"file:///private/var/mobile/Applications/3D02CBE0-6A8E-4709-B6EF-B6793E19F4F4/Documents/Inbox/Published_071032-8.pdf"

0x145c53e0

该代码在模拟器上运行良好,但在 iPhone 上却不行!有人知道出了什么问题吗?

可能是工作目录,但在 xcode 5 中无法更改它。

4

1 回答 1

0

是的,您的文件的路径似乎是问题所在。我什至确定你看到了类似@"file://..."的东西,因为 unix 文件系统直接基于路径,例如/var/mobile/.../

接下来我建议您检查定义 pathToFile 字符串的位置。也许它已经超出范围,因为它是在堆栈上创建的,因为您在相同的函数/方法中创建它。

NULL这可能是它是/的原因nil

也许是一个解决方案:基于NSBundle类创建路径+不要使用file://-paths。

让我知道它是否有效或需要任何其他帮助。谢谢问候

于 2013-10-26T13:18:23.473 回答