gpt4 book ai didi

swift - 如何确定 Swift 代码是否在 XCode Playground 中运行

转载 作者:搜寻专家 更新时间:2023-10-30 23:15:11 25 4
gpt4 key购买 nike

我正在用 Swift 编写一个读取 CSV 文件的简单应用程序,我希望能够在 Playground 中使用相同的代码并将其作为 swift 命令的输入文件。

要在 Playground 中读取文件,我必须使用此代码

let filePath = XCPlaygroundSharedDataDirectoryURL.URLByAppendingPathComponent("data.csv")

我想实现这样的目标:

#if PLAYGROUND
import XCPlayground
let filePath = XCPlaygroundSharedDataDirectoryURL.URLByAppendingPathComponent("data.csv")
#else
let filePath = NSURL.fileURLWithPath("data.csv")
#endif

最佳答案

测试很简单:

let bundleId = NSBundle.mainBundle().bundleIdentifier ?? ""
if bundleId.hasPrefix("com.apple.dt"){
//... Your code
}

但我认为一旦您完成了该操作,您就已经看到了问题……导入将停止在别处构建。我怀疑您正在尝试为您构建的框架构建一个 Playground (如果不是,我不太确定代码是如何共享的)......我在框架中解决它的方式是提供一个可选的回调 Hook 我想获得的值(value)...例如

在框架内

public defaultUrlHook : (()->NSURL)? = nil

internal var defaultUrl : NSURL {
return defaultUrlHook?() ?? NSURL.fileURLWithPath("data.csv")
}

在 Playground 上

import XCPlayground
import YourFramework

defaultUrlHook = { ()->NSURL in
return XCPlaygroundSharedDataDirectoryURL.URLByAppendingPathComponent("data.csv")
}

//Do your thing....

关于swift - 如何确定 Swift 代码是否在 XCode Playground 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35999250/

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