Swift 中的闭包(Closure)
Aug 17, 2022
普通闭包写法: let closure = { (data, error) in if let data = data { // handle data } } 使用闭包延迟求值: lazy var titleLabel = { () -> UILabel in let lable = UILabel() lable.font = .systemFont(ofSize: 13) lable.textColor = .systemOrange lable.textAlignment = .justified return lable }() 自动闭包 @autoclosure 修饰符,用…
Swift 中的 Any 和 AnyObject
Aug 17, 2022
AnyObject :表示任意的 class 类型的实例,包括来自 ObjC 类和纯 Swift 的类,类似于 id 在 ObjC 里的概念。 Any :表示任意的类型实例,Swift 中的所有数据类型都可以用它表示。…
Swift 中的字符串插值
Jul 02, 2022
字符串插值是在 Swift 3 中面向开发者推出的,因为太拉垮被标记为废弃。到了 Swift 5 经过重写之后又回归了。 可用性:iOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+, Xcode 10.2+ 在没有字符…
SwiftUI 学习资源
Jun 29, 2022
SwiftUI-Lab 网站上的文章是免费的,官方有一个收费的 App,整合了 SwiftUI 里的很多 API 使用例子 SwiftUI Companion Interactful 是 SwiftUI Companion 的免费替代版本。 Interactful
微软在 Apple 平台上的努力
Jun 23, 2022
FluentUI Fluent 是微软 Windows 界面的设计语言,就是界面设计规范。 微软使用 Swift 实现了一套 Fluent 风格的界面库。 支持 iOS 14+ 和 macOS 10.14+ https://github.com/microsoft/fluentui-apple FluentDarkModeKit Swift 实现的自动适配深色和浅色风格的库,支持…
SwiftUI 相关的开源实现
Jun 15, 2022
Swift 是苹果公司的开源编程语言,但是苹果公司使用 Swift 开发的一些好用的框架却是闭源的,比如:SwiftUI、Combine。 以下是开源社区的实现版本…
Swift 中的值类型和引用类型
May 30, 2022
Swift 中的 struct, enum, tuple 是值类型,class 是引用类型。 值类型在传递的时候是直接拷贝一份数据副本,而引用类型不拷贝数据,只是增加引用计数。 为了避免内存浪…
Swift 使用泛型实现命名空间形式的扩展
May 03, 2022
什么是命名空间形式的扩展 什么是扩展? extension UIView { var v: ... } v 就是扩展出来的一个 UIView 属性。 什么是命名空间? 相较于 ObjC 没有命名空间的特性,Swift 使用模块…
Swift 5 静态编译
Nov 17, 2021
Swift 是支持静态链接的,因为它是跨平台的语言。参考这里:Static linking on Linux 静态链接的好处就是不需要带 Swift 的一堆 Runtime 库,在 build 的时候增加 -static-stdlib 就可以了。 但是…
SwiftUI 入门指南
Sep 29, 2021
Introducing SwiftUI SwiftUI is a modern way to declare user interfaces for any Apple platform. Create beautiful, dynamic apps faster than ever before. SwiftUI Essentials Learn how to use SwiftUI to compose rich views out of simple ones, set up data flow, and build the navigation while watching it unfold in Xcode’s preview. Creating and Combining Views Create a new Xcode project that uses…