Lazyiable 1.1.0

Lazyiable 1.1.0

Bell App Lab 维护。




Lazyiable 1.1.0

Lazyiable 版本 许可证

Platforms Swift support CocoaPods Compatible Carthage compatible Twitter

Laziable

因此,您在 Swift 中声明了一个 lazy var,认为它会像 Objective-C 中的即时实例化变量一样表现。您本以为将它们设置为 nil,将在需要时重建它们。

您怎么这么可怜。

它们不会.

为什么不以非常轻量级的方式将那种美妙带回到 Swift 中呢?

规范

  • iOS 9+
  • watchOS 3+
  • tvOS 9+
  • watchOS 3+
  • macOS 10.10+
  • Swift 4.2+

使用

根据提供的三种方法之一声明您的 Lazy 变量

建议:为了获得最佳效果,声明您的 Lazy 变量时请使用 let

class TestClass
{
    let lazyString = §{
        return "testString"
    }

    let lazyDouble: Lazy<Double> = Lazy {
        return 0.0
    }

    let lazyArray = Lazy {
        return ["one", "two", "three"]
    }
}

访问您的变量

let testObject = TestClass()
print(testObject.lazyString§) //prints out "testString"

将您的变量设置为 nil,以便以后重新构建

let testObject = TestClass()
testObject.lazyDouble §= nil

运算符

  • 前缀运算符 §
    • Lazy变量的简写构造函数
let lazyThing = §{
    return <#code#>
}
  • 后缀运算符 §
    • Lazy的简写访问器
let lazyString = §{
    return "Much cool"
}

print(lazyThing§) //prints out "Much cool"
  • 中缀运算符 §=
    • Lazy的简写赋值
let lazyString = §{
    return "Much cool"
}

lazyString §= nil //the string "Much cool" has been destroyed
print(lazyThing§) //reconstructs the string and prints out "Much cool"

注释

为获得最佳结果,在声明Lazy变量时使用let

同时,确保在Lazy变量构造函数中捕获self时使用[weak self]

安装

Cocoapods

pod 'Laziable', '~> 1.1'

然后,在需要的位置导入import Laziable

Carthage

github "BellAppLab/Laziable" ~> 1.1

然后,在需要的位置导入import Laziable

Swift Package Manager

dependencies: [
    .package(url: "https://github.com/BellAppLab/Laziable", from: "1.1.0")
]

然后,在需要的位置导入import Laziable

Git Submodules

cd toYourProjectsFolder
git submodule add -b submodule --name Laziable https://github.com/BellAppLab/Laziable.git

然后,将Laziable文件夹拖动到您的Xcode项目中。

作者

Bell App Lab, [email protected]

致谢

Logo 图片由 The Noun Project 上的 Georgiana Ionescu 提供

许可

CocoaPods 以 MIT 许可证提供。有关更多信息,请参阅 LICENSE 文件。