我试图找出如何在捆绑软件中的MacOS应用中存储文本信息。但是,当我尝试运行该应用程序时,找不到该文件。
这是我在做什么:
使用命令行应用程序模板创建一个全新的Xcode项目,该模板在目录BundleExperiment
中位于random_code_projects
在命令行中,在创建的存储库(~\random_code_projects\BundleExperiment
)的根目录中添加了一个文本文件,名为“ hello.txt”,其中包含“ hello残酷的世界”,我认为它是ascii或utf -8。 (echo "hello cruel world" > hello.txt
)
所以我的顶级BundleExperiment
的内容是:
BundleExperiment
|
|- - main.swift
BundleExperiment.xcodeproj
|
|- - a bunch of Xcode generated stuff like project.pbxproj
hello.txt
在macOS 10.14.4的xcode 10.2.1中的项目导航器中,突出显示“ BundleExperiment”文件夹,然后使用菜单命令File --> Add Files to "BundleExperiment"
,导航至hello.txt
并添加它,并选择以下选项:
然后我的main.swift文件的内容如下:
import Foundation
let urlPath = Bundle.main.url(forResource: "hello", withExtension: "txt")!
let hello = try! String(contentsOf: urlPath)
print(hello)
它抛出:
Fatal error: Unexpectedly found nil while unwrapping an Optional value
2019-05-05 22:38:23.456979-0500 BundleExperiment[5030:6734193] Fatal error: Unexpectedly found nil while unwrapping an Optional value
我在做什么错?我以为我还没有把东西捆绑在一起,例如,有一些随机的sub-sub-sub-sub菜单项,其名称完全没有意义,例如“ finagle the squirtle”,意思是“不,我真的想放捆绑包中的东西”。