[英]How to create Non-optional stored properties for UIViewController Custom Subclass
當子類化UIViewController
(和其他類似的類)時,我們不必處理任何初始化,所以如果我創建一個不是可選的存儲屬性,Xcode會抱怨沒有初始化器。
那么如何在這些類中創建一個非可選的商店屬性呢? 或者我應該?
你有2個選擇:
內聯初始化
var myProp = MyClass()
將其聲明為隱式展開的可選:
var myProp: MyClass!
並在視圖控制器中的任何位置初始化它 - 通常在viewDidLoad
。 這是常用於出口的模式,也是我容忍隱式展開的少數情況之一
使用lazy
定義屬性。
lazy var myFoo : Foo = Foo()
或者,如果你需要做一些設置myFoo
東西:
lazy var myFoo : Foo = {
// Code to create myFoo
let foo = Foo(...)
// modify foo if you need to
return foo
}() // <== this is a function call; returns the configured `myFoo`
作為一個惰性var, myFoo
將在第一次使用時被賦值為初始值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.