IT入门 > 教程 > swift教程 >
  • swift-逃逸闭包 日期:2025-10-15 点击:8782 闭包

    逃逸闭包指闭包在函数返回后才执行。用@escaping标记。 var completionHandlers: [() -> Void] = []func someFunctionWithEscapingClosure(completionHandler: @escaping () -> Void) { completionHandlers.append(completionHandler)}f...

  • swift-闭包内存管理 日期:2025-10-15 点击:3346 闭包

    闭包内存管理很重要,不当使用会导致内存泄漏。 class SomeClass { var closure: (() -> Void)? init() { closure = { [weak self] in guard let strongSelf = self else { return } // 使用strongSelf } }} 这里用[weak self]避免...

  • swift-闭包循环引用 日期:2025-10-15 点击:4066 闭包

    闭包循环引用指闭包和对象相互强引用,导致内存无法释放。 class Person { var closure: (() -> Void)? init() { closure = { [unowned self] in // 使用self } }} 这里用[unowned self]打破循环引用。也可用[weak...

  • Swift枚举的基本定义 日期:2025-10-15 点击:4855 枚举

    在Swift里,枚举用来定义一组相关的值。其定义格式为: enum 枚举名 { 枚举成员 } 。 enum CompassPoint { case north case south case east case west} 上面代码定义了一个名为 CompassPoint 的枚举,包含了...

  • Swift枚举的关联值 日期:2025-10-15 点击:1003 枚举

    Swift枚举成员可有关联值,能将额外信息和成员关联。 enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String)} 这里定义了 Barcode 枚举, upc 成员关联四个整数, qrCode 成员关联一个字符串。...

  • swift-使用 Switch 语句匹配枚举值 日期:2025-10-18 点击:5002 枚举

    在 Swift 里,可借助 Switch 语句匹配枚举值。枚举是自定义类型,含一组相关值。Switch 语句能按枚举成员不同执行不同代码。 enum Direction { case north case south case east case west } let currentDire...

  • swift-枚举成员的遍历 日期:2025-10-18 点击:4946 枚举

    Swift 里,若枚举遵循 CaseIterable 协议,就能遍历其所有成员。该协议让枚举有 allCases 属性,是含所有枚举成员的集合。 enum Weekday: CaseIterable { case monday, tuesday, wednesday, thursday, friday } fo...

  • Swift枚举关联值 日期:2025-10-15 点击:7220 枚举

    Swift枚举关联值允许为枚举成员存储额外信息。关联值可以是不同类型,让枚举更灵活。 enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String)} 可以这样使用关联值: var productBarcode = Barcod...

  • Swift - 枚举原始值 - 原始值的隐式赋值 日期:2025-10-15 点击:5745 枚举

    在Swift中,枚举原始值可进行隐式赋值。当枚举类型为整数或字符串时,原始值会自动分配。 enum Planet: Int { case mercury = 1, venus, earth, mars, jupiter, saturn, uranus, neptune} 这里整数类型的枚举,...

  • Swift枚举使用原始值初始化枚举实例结合Swift枚举关联值 日期: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...