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

时间:2019-09-20 14:49:05

标签: swift macos-mojave xcode10.1 home-directory

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

--->它具有一个按钮和一个textField。我想在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中测试过此代码,它是正确的。相同的代码,但没有正确的路径。

1 个答案:

答案 0 :(得分:1)

这是因为沙箱。 documentation指出:

应用沙箱容器目录

  

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

您可以通过删除“应用程序沙箱”功能来验证这一点(注意:我不是(emem)建议您对应用程序执行此操作)。

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