首页 > 解决方案 > 为什么在 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 中测试过这段代码,它是正确的。它的代码相同,但没有抛出正确的路径。

标签: swiftmacos-mojavexcode10.1home-directory

解决方案


这是因为沙盒。该文档指出:

应用沙盒容器目录

它位于用户主目录中的系统定义路径。在沙盒应用中,当您的应用调用 NSHomeDirectory 函数时会返回此路径。

您可以通过删除 App Sandbox 功能来验证这一点(注意:我并不是建议您应该为您的应用程序执行此操作)。

PS:如果您打算将您的应用提交到 AppStore,则必须启用沙盒。


推荐阅读