排序
Tap Sudoku
In final stream in this miniseries about making games with SwiftUI, we’re going to create a mini sudoku game from scratch. It’s pretty packed, but a fantastic starting point for ...
轻松解析 XML
开始解析 首先,我们将创建两个类来保存所有数据:一个名为 XMLNode 的类代表解析 XML 中的一个节点,另一个名为 MicroDOM 的类负责将 XML 实际解析为节点。XML 的本质是整个树最终由一个根节点...
解析复杂 JSON
在本文中,将向您展示如何以优雅的方式处理任何类型的 JSON,而无需依赖第三方库。 Codable 的不足之处 Swift 的 Codable 实现与魔法相去不远:如果您有完美的 JSON,那么您几乎不需要做任何工...
类型(六) – 泛型
func inspect<T>(_ value: T) { print('Received \(type(of: value)) with the value \(value)') } inspect('Haters gonna hate') inspect(56) 限制泛型 func square<T: Numeric>(_...
函数与闭包
可变函数 可变函数是一种不确定迭代的函数,也就是你发送多少参数,它就接受多少参数。 func add(numbers: Int...) -> Int { var total = 0 for number in numbers { total += number } retu...
SwiftUI List 中多个按钮 button 同时触发
问题描述 在 list 中的一列中设置多个按钮会出现同时触发的问题 问题演示 解决方案 增设按钮的类型属性 .buttonStyle(.borderless),也可以选择其他的按钮类型。 Button('Add to Red') { redSco...
布局(八) – 坐标空间
Framework 为我们提供两种内置的坐标空间: 全局坐标空间 和 本地坐标空间,我们也可以定义⾃⼰的坐标空间。struct ContentView: View { var body: some View { VStack { Text('Hello') Text('Se...
语法(一) – 模式匹配
Swift 的 switch 语句具有灵活却富有表现力的匹配模式。 基本使用 单值匹配 单值字符串匹配 let name = "twostraws" switch name { case "bilbo": print("Hello, Bilb...
类型(一) – 有用的初始化器
重复值 字符串或者数组的 repeating:count: 初始化器,可以快速创建大量值。 This is a heading ============== 具体的实现代码 let heading = 'This is a heading' let underline = String(rep...





