为什么在 xcode 中,主目录显示为 /Users/myname/Library/Containers/... 而不是主文件夹?

why in xcode, home directory is showing as /Users/myname/Library/Containers/... and not the main folder?

我搜索了很多,找不到答案。 我刚开始使用 xcode 并有一个非常非常简单的程序,名为 "Image Test".

---> 它有一个按钮和一个文本字段。我想在文本字段中显示我的系统主目录路径。这是我的代码:

@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 中测试过这段代码,它是正确的。它是相同的代码,但没有抛出正确的路径。

这是因为沙盒。 documentation 状态:

App Sandbox 容器目录

It is located at a system-defined path, within the user’s home directory. In a sandboxed app, this path is returned when your app calls the NSHomeDirectory function.

您可以通过删除 App Sandbox 功能来验证这一点(注意:我不是建议您应该为您的应用做的)。

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