2025/10/15 点击:4066
闭包循环引用指闭包和对象相互强引用,导致内存无法释放。 class Person { var closure: (() -> Void)? init() { closure = { [unowned self] in // 使用self } }} 这里用[unowned self]打破循环引用。也可用[weak
2025/10/15 点击:4855
在Swift里,枚举用来定义一组相关的值。其定义格式为: enum 枚举名 { 枚举成员 } 。 enum CompassPoint { case north case south case east case west} 上面代码定义了一个名为 CompassPoint 的枚举,包含了
2025/10/15 点击:1003
Swift枚举成员可有关联值,能将额外信息和成员关联。 enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String)} 这里定义了 Barcode 枚举, upc 成员关联四个整数, qrCode 成员关联一个字符串。
2025/10/18 点击:5000
在 Swift 里,可借助 Switch 语句匹配枚举值。枚举是自定义类型,含一组相关值。Switch 语句能按枚举成员不同执行不同代码。 enum Direction { case north case south case east case west } let currentDire
2025/10/18 点击:4946
Swift 里,若枚举遵循 CaseIterable 协议,就能遍历其所有成员。该协议让枚举有 allCases 属性,是含所有枚举成员的集合。 enum Weekday: CaseIterable { case monday, tuesday, wednesday, thursday, friday } fo
2025/10/15 点击:7220
Swift枚举关联值允许为枚举成员存储额外信息。关联值可以是不同类型,让枚举更灵活。 enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String)} 可以这样使用关联值: var productBarcode = Barcod
2025/10/15 点击:5745
在Swift中,枚举原始值可进行隐式赋值。当枚举类型为整数或字符串时,原始值会自动分配。 enum Planet: Int { case mercury = 1, venus, earth, mars, jupiter, saturn, uranus, neptune} 这里整数类型的枚举,
2025/10/15 点击:1233
可以使用原始值初始化枚举实例,同时结合关联值使用。 enum Status: Int { case success = 200 case error = 500}let statusCode = 200if let status = Status(rawValue: statusCode) { // 结合关联值 enum Result { case succ
2025/10/15 点击:1144
递归枚举是一种特殊枚举,它允许枚举的某个成员以该枚举类型作为关联值。在 Swift 里,递归枚举可用于表示有递归结构的数据,像表达式树。 // 定义一个简单的递归枚举来表示算术
2025/10/15 点击:9312
下面看如何使用递归枚举 `ArithmeticExpression` 来创建和计算表达式。 // 创建表达式 (5 + 4) * 2let five = ArithmeticExpression.number(5)let four = ArithmeticExpression.number(4)let sum = ArithmeticExpression.addition(