加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 02:23:54 所属栏目:百科 来源:网络整理
导读:我正在编写一个简单的应用程序,在 Swift中读取CSV文件,我希望能够在Playground中使用相同的代码,并将其作为swift命令的输入文件. 要在Playground中读取文件,我必须使用此代码 let filePath = XCPlaygroundSharedDataDirectoryURL.URLByAppendingPathComponen
我正在编写一个简单的应用程序,在 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
}

但是我认为你已经看到了问题,一旦你做完了……导入将停止其他地方的构建.我怀疑你正在尝试为你构建的框架构建一个游乐场(如果不是,我不太确定如何共享代码)…我在框架中解决它的方式是提供一个可选的回调挂钩我想要得到的价值……例如

在框架中

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

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

在操场上

import XCPlayground
import YourFramework

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

//Do your thing....

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读