swift - 为什么在 xcode 中,主目录显示为 /Users/myname/Library/Containers/... 而不是主文件夹?
问题描述
我搜索了很多,找不到答案。我刚开始使用 xcode,并且有一个非常简单的程序,名为“Image Test”。
---> 它有一个按钮和一个文本字段。我想在 textField 中显示我的系统主目录路径。这是我的代码:
@IBOutlet weak var textField1: NSTextField!
@IBAction func Button1(_ sender: Any) {
do{
let home = try FileManager.default.homeDirectoryForCurrentUser
textField1.stringValue = home.path
}
catch{}
}
它可以工作,但返回的路径如下:/Users/myname/Library/Containers/com.Image-Test/Data
我之前在 Xcode Playground 中测试过这段代码,它是正确的。它的代码相同,但没有抛出正确的路径。
解决方案
这是因为沙盒。该文档指出:
应用沙盒容器目录
它位于用户主目录中的系统定义路径。在沙盒应用中,当您的应用调用 NSHomeDirectory 函数时会返回此路径。
您可以通过删除 App Sandbox 功能来验证这一点(注意:我并不是建议您应该为您的应用程序执行此操作)。
PS:如果您打算将您的应用提交到 AppStore,则必须启用沙盒。
推荐阅读
- visual-studio - Visual Studio SSRS 项目文件错误:该项目需要用户输入。重新加载项目以获取更多信息
- sql - 如何在 BigQuery(标准 SQL)中获取表的前 N%(例如,50%)?
- java - 正则表达式java:replaceAll空格,连字符之间除外
- javascript - Firebase:初始化由集合组成的树
- kubernetes - 如何跨多个 Kubernetes 集群扩展 RabbitMQ
- mysql - SQL查询从wordpress数据库中删除重复的postmeta
- node.js - 使用passport-saml将浏览器重定向到登录页面
- c++ - 将 BGR 图像转换为 jpeg 格式的 base64 字符串
- list - 列表中的视觉序言重复
- javascript - 如何使一个不能模拟点击