如何在bundle中找到现有文本资源文件的路径?

时间:2018-02-04 10:53:52

标签: swift macos file-io resources bundle

我正在尝试加载一个现有的文本文件,该文件存储为捆绑在我的Xcode项目中的资源。我无法将变量设置为此文件的路径,因此无法进入读取阶段。

  1. 我创建了一个项目:new-> MacOS->命令行工具 - >名为“Pants”

  2. 在Project Navigator中,单击名为Pants的黄色文件夹。文件 - >新文件... MacOS->资源 - >富文本文件。我把这个名字命名为“尼克”。组是裤子,目标被标记为裤子。

  3. 我在此文件中输入“Hello wonderful world”。文件 - >关闭“Nick.rtf”

  4. 在Project Navigator中,在黄色文件夹Pants下,我可以看到Nick.rtf

  5. 在Project Navigator中,单击顶级蓝色图标Pants。选择Build Phases-> +,New Copy Bundle Resource Phase。我将Nick.rtf文件从Project Navigator拖到“在这里添加资源文件”。 [我注意到有时文件已放在这里]

  6. 在main.swift中,我添加了下面给出的代码。这是修改自:Read and write a String from text file

    import Foundation
    
    print("Hello, World!")
    
        if let path = Bundle.main.path(forResource:"Nick" , ofType: nil) {
                print("will read")
        } else {
            print("Failed to load file from bundle")
            }
    
  7. 运行此项时,产品 - >运行,找不到我的文件:

      
        

    你好,世界!无法从软件包加载文件程序以退出代码结束:0

      

    一个。我试过更改Type“rtf”。我试过Nil。如果在Mac Finder中使用完整的项目路径,我可以看到文件“Nick.rtf”存储在Documents-> SwiftCode-> Pants-> Pants

    湾我尝试了各种名称,文件类型,位置等等。我尝试过将文件 - >添加到“裤子”...

    ℃。如果我将Nick.rtf从Project Navigator拖到我的源文件中,它会将路径指定为:

      

    /Users/XXX/Documents/SwiftCode/Pants/Pants/Nick.rtf

    我仍然无法使用Swift代码确定项目中我的资源的路径,因此我可以(最后)加载文本文件。我假设文件实际上不在资源包中 - 我无法确定如何将其存在?

0 个答案:

没有答案