簡體   English   中英

如何為UIViewController自定義子類創建非可選的存儲屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM