gpt4 book ai didi

swift4 - 在 Swift 4.0 和 Xcode 9.0 中获取用户桌面路径

转载 作者:行者123 更新时间:2023-12-03 15:57:51 26 4
gpt4 key购买 nike

我正在尝试获取当前用户桌面的路径,但我得到了库中另一个位置的路径(请参阅代码)。

Playgrounds 中的相同代码给出了正确答案。
我在早期创建的 Xcode 项目版本中使用了相同的代码,结果也很好。

测试在 MacOS High Sierra、Xcode 版本 9.0 (9A235) 和 Swift 4.0 下完成。

这是使用的代码:

public func userDesktop() -> String {
let paths = NSSearchPathForDirectoriesInDomains(.desktopDirectory, .userDomainMask, true)
let userDesktopDirectory = paths[0]
return userDesktopDirectory
}

let myPath:String = userDesktop() + "/"
print(myPath)

let userDesktopDirectory:String = NSHomeDirectory() + "/" + "Desktop/"
print(userDesktopDirectory)

/* results in Playground */
/Users/kader/Desktop/
/Users/kader/Desktop/

/* Results from a project in Xcode 9.0 */
/Users/kader/Library/Containers/com.kader.testuserpath/Data/Desktop/
/Users/kader/Library/Containers/com.kader.testuserpath/Data/Desktop/

这段代码有什么问题还是一个错误?

我很好奇是否有更多的人遇到过同样的问题。

最佳答案

我注意到 Xcode 9 中的 Cocoa Application 模板默认开启 App Sandbox。开启此模式后,应用程序只能访问自己容器中的文件,就像 iOS 应用程序一样。您可以在项目设置的“功能”选项卡中将其关闭。来自 Apple's documentation 的截图:

Capabilities

What your app can do inside a sandbox .如果您这样做是为了好玩,不打算通过 Mac App Store 分发它,或者想要传统意义上的“计算机应用程序”,请完全关闭 sanboxing。长期以来,这一直是 Mac App Store 的痛点,也是许多开发者离开商店的原因。

关于swift4 - 在 Swift 4.0 和 Xcode 9.0 中获取用户桌面路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46532218/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com