【问题标题】:iPhone Application Support Folder Include Files BEFORE BuildingiPhone 应用程序支持文件夹包含构建前的文件
【发布时间】:2012-09-17 13:25:49
【问题描述】:

我有一个 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/”文件夹中(我知道如何以编程方式进行),所以我想在构建和运行之前将原始关卡包包含在同一个地方应用程序。将我所有的关卡包放在一个地方会简单得多!

【问题讨论】:

  • 嗨modelbuster,你得到这个问题的答案了吗?我可以根据下面@CocoaFu 答案的链接将一个完整的文件夹放入应用程序包中,并通过该包访问我的文件夹和文件。但是,我仍然没有想出如何将文件放入 Application Support 文件夹以及访问文件的好方法。

标签: iphone ios file directory


【解决方案1】:

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

然后在代码中

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

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

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

方法在NSBundle class reference中给出,另见Bundle Programming guide

希望这能解决您的问题。如果没有请评论

【讨论】:

  • 这很有帮助,谢谢!我唯一缺少的是“为任何添加的文件夹创建文件夹引用”单选按钮。
  • 这与我正在寻找的略有不同。不同之处在于:让我们将“~”指定为应用程序的主目录。您提到的文件夹引用和 pathForResource 方法将为您提供如下路径:“~/MyApp.app/MyFolder/MyFile.plist” 我要包含我的文件的位置在“~/Library/Application Support/MyFile.列表”。您的解决方案可以工作,但请阅读我编辑的原始帖子,了解我为什么想要这个特定文件夹。再次感谢您!
  • 不幸的是,没有办法自动做你想做的事。你能做的最好的就是按照 Vimal 的建议做,并将文件包含在你的资源包中。然后,当您的应用第一次启动时,将文件从捆绑包复制到应用程序支持目录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-20
  • 1970-01-01
  • 2011-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多