3

我有一个 iPhone 应用程序,它以编程方式获取应用程序支持文件夹的路径,测试应用程序支持文件夹中的文件,然后根据结果加载文件或创建新文件。这很容易,并且有很多关于如何做到这一点的教程。

但是在构建应用程序之前,我无法在 ios 文档或在线找到任何关于如何将文件放入应用程序支持文件夹的内容。我尝试在我的应用程序 Xcode 文件夹中创建库/应用程序支持无济于事。

具体来说,我正在制作一个游戏,我想在构建和运行应用程序之前将关卡包包含在游戏的 Library/Application Support 文件夹中。最好通过在 Finder 中拖放文件。这可能吗?

@Vimal Venugopalan

编辑:正如 Vimal 提到的,我可以使用 [[NSBundle mainBundle] pathForResource:ofType:inDirectory:] 方法,但这给出了类似于“~/MyApp.app/MyFolder/MyFile.plist”的路径。也就是说,如果“~”是应用程序主目录的路径。或者更具体地说,“~”是调用 NSHomeDirectory() 返回的路径;功能。我想把文件放在“~/Library/Application Support/MyFolder/MyFile.plist”中

我想要这个位置的文件,因为我想将关卡包合并到我的游戏中。我想在应用程序下载中包含一些关卡包,我最终希望有额外的可下载关卡包。现在下载的关卡包肯定必须放在“~/Library/Application Support/”文件夹中(我知道如何以编程方式进行),所以我想在构建和运行之前将原始关卡包包含在同一个地方应用程序。将我所有的关卡包放在一个地方会简单得多!

4

1 回答 1

3

您可以在项目中添加这些文件并在运行时访问这些文件,Xcode 将在 Copy Bundle Resource 阶段复制它们。这通常会复制到包的根目录中。要处理目录,请参阅@CocoaFu 对这个 SO question的回答。

然后在代码中

NSBundle* bundle = [NSBundle mainBundle]会给你主要的捆绑

从这里您可以使用 pathForResource:ofType:inDirectory 查看目录:例如

NSString* path = [bundle pathForResource:@"file.xml" 
                                  ofType:nil 
                             inDirectory:@"a"];

这些方法在NSBundle 类参考中给出,另请参见Bundle Programming guide

希望这可以解决您的问题。如果不是请评论

于 2012-09-17T13:37:19.097 回答