Swift Playground 使用

2020年7月8日更新

如何在Playground中加载文件呢

// 从文件中加载数据
let path = "/Users/xx/Documents/我的案例/xx.txt"
let data = FileManager().contents(atPath: path)
let originalString = String(data: data!, encoding: .utf8)

最关键的是这个文件地址, 它是文件所在硬盘中实际的全地址. 这个地址不需要你费劲去找, 直接把文件拖到 Playground 的代码编辑区, 地址会自动显示






Swift Playground 首次公布于WWDC2016, 最开始是为了让人人都能愉快的学习 Swift 编程, 但发展至今, 这个工具越来越强大, 这里我分享几个比较常用的功能.

这是我做的一个回归分析可视化的UI.


image.png

在这张图里, 我们可以知道

  • 在 iOS / MacOS 的playground中, 我们可以导入对应系统支持的库文件, 还可以导入这种 Playground 独有的框架, 比如 PlaygroundSupport , 用于界面可视化.
  • Playground 支持 MarkUp 语法, 这是一种类似 Markdown 的语法.
  • 我们可以在playground 编写任何符合 iOS / MacOS 的代码, 包括各种动画, 游戏等.

Playground 的左边栏 - 文件区

当我们创建完一个 playground 后, 会自动创建一个 Page , 这个 Page 里包含两个文件, 如果文件夹是空的, 图标是暗色的.

  • Sources: 存放当前 Playground Page 的代码.
  • Resources: 资源文件, 包括图片, 文件等资源.

如果我们想创建多个 Playground Page, 在Xcode菜单栏, File -> New -> Playground Page, 就会创建一个新的 Page. 在运行代码时, 每个 Page 是分开的.

Playground 的中间栏 - 代码编辑区

在每一个 Page 中, 目前只能创建 Swift 文件, 代码注释沿用Markup 语法. 如果要开启 Markup 显示, 需要在 Xcode 的菜单栏, Editor -> Show Raw Markup(原始代码, 无效果) / Show Rendered Markup (渲染后的效果)

单行注释, 开启单行markup
//: code

多行注释
/*
code
*/

//: [上一页](@previous)
//: [下一页](@next)  上页下页的顺序由你创建的 Page 顺序决定, 它是可以调整的
//: [主页](MainPage) 这里直接写你创建的 Page 的名字

这下面的基本和 Markdown 语法一致
/*:
 # 大大大
 ## 大大
 ### 大
 * item1
 * item2
 
 > 标题
 
 # 分割线
 ---

 ## 链接
 * [点我啊](http://www.baidu.com)
 ## Image
 ![Image](image.png "Local image")

 ## 加粗
 **code**
*/

注意: markup语法显示只有在 playground 文件中有效, 在swift 文件中是没用的

在控制台, 我们可以选择 手动运行 / 自动运行 Playground, 当我们鼠标靠近 ▢ / ▷图标时, 会出现一个小三角, 鼠标左键长按, 就会出现选择框进行选择.


image.png

Playground 的右边栏 - 可视化区

这里的右边栏是我们将视图拆成两个形成的.


image.png

选中要运行的 Page, 点击运行 ▷, 在右边就能看到可视化界面. 注意: 如果你运行代码, 没看到对应的界面, 你得查看显示的视图是不是 Live View.


image.png

Playground 基本讲完了, 我在使用的过程中, 遇到 Xcode 多次崩溃, 或者在自己建的子文件里代码没有提示, 目前Playground 还是需要优化.

Playground 问题集锦

  1. 如果你新建一个类, 在主package 无法调用的话, 报如下错误
由于“内部”保护级别,初始化程序无法访问
initializer is inaccessible due to 'internal' protection level

解决方法:
如果你没有自定义初始化方法, 那么你需要在出错类中加入以下代码, 将初始化方法暴露出来

public init() {}

参考:
Swift Playground精讲
swift-summary 官方Swift语言教材的Playground总结版本。
Awesome-Swift-Playgrounds 优秀的Playground列表

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,057评论 3 119
  • 不当家不知柴米油盐贵,不养儿不知父母艰。 经年之后你是否会记得 你尿到满炕都是,让你奶奶和你无处栖身 情急之下,你...
    灯下独我阅读 2,656评论 0 0
  • 站成山的模样 谁都想在山的臂膀 活出水的潋滟 百转千回一腔柔肠 在山的包容 慈祥里欢畅 蒹葭苍苍 白露为霜 看过了...
    lsjr陈浮阅读 3,362评论 13 12
  • 旧时衣,今时意, 衣不如旧,人不如新。 明月去多时,星辰独闪烁。 莫道清辉少,离人珠泪多。 俗事纷纷扰扰,一肩难担...
    刀笔伐心阅读 2,890评论 4 6
  • 在时尚界,展现了很多的平胸模特,其实不能说时尚偏爱平胸,主要看展示的时装平台,不同的时装需要的风格不一样,所以展示...
    IN女王阅读 4,140评论 0 0

友情链接更多精彩内容