iOSアプリケーション開発者のデビュープロセス-11
5860 ワード
🧷 Extension
列挙、クラス、構造体などのオブジェクトを展開して、新しい機能を追加できます.
既存の機能を追加すると、クラス継承によって完全に実現できます.なぜ継承はクラスタイプにのみ適用されますが、エクスポートは構造、クラス、プロトコルに適用されます. 外部からインポートしたタイプに必要な機能を追加する場合は、継承せずにエクスポート追加機能を使用できます.
拡張の性質をさらに理解するために、簡単な例を見てみましょう. 簡単な例を見てみましょう.
このクラスを継承する他のクラスで、追加した機能が使用可能かどうかを確認できます.
🚶 Singleton Pattern
作成者が複数回呼び出されても、実際に生成されたオブジェクトは1つしかありません.最初に作成された後に呼び出された作成者は、最初に作成されたオブジェクトを返します.このデザインのタイプを単輪図案と呼びます.
簡単な例を考えてみましょう.
各
1つのインスタンスで格納できますが、3つのインスタンスが使用されているため、メモリの損失になります.
では、グローバルインスタンスを作成し、
この設計を
該当するブログを参照してください.
🏷 P.S.
レイアウト設定が間違っているのか、それとも何か見逃しているのか、ゆっくりチェックすべきだと思います.ううう
列挙、クラス、構造体などのオブジェクトを展開して、新しい機能を追加できます.
既存の機能を追加すると、クラス継承によって完全に実現できます.なぜ
Extension
を使用しますか?즉, 클래스의 상속과 달리 타입에 상관없이 그리고 타입을 구현한 소스코드를 몰라도 간단하게 타입의 기능을 확장할 수 있습니다!
Extensionを利用すれば、私たちが望む機能を簡単に追加することができます.拡張の性質をさらに理解するために、簡単な例を見てみましょう.
Extension
オブジェクトとして存在するクラスまたは構造ではなく、他のオブジェクトの拡張のみを担当します.Extension
は、タイプに新しい機能を追加できますが、既存の機能を再定義することはできません.(상속과 차이점)
Extension
|演算子、メソッド、および頭文字Riserを追加できます.(❗️ 저장 프로퍼티는 추가할 수 없습니다.)
import Foundation
import UIKit
extension UIViewController {
//ViewController 에서 바로 사용할 수 있음!!
func setBackgroundColor() {
view.backgroundColor = .red
}
func justforTest() -> (Void) {
print("Hello This is Extension Test!")
}
var testForExtension: Int {
get {
return 10
}
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
justforTest() // Hello This is Extension Test!
print(testForExtension)// 10
}
}
上記のように、UIViewController
クラスにメソッドと演算プログラムを拡張して追加します.このクラスを継承する他のクラスで、追加した機能が使用可能かどうかを確認できます.
🚶 Singleton Pattern
作成者が複数回呼び出されても、実際に生成されたオブジェクトは1つしかありません.最初に作成された後に呼び出された作成者は、最初に作成されたオブジェクトを返します.このデザインのタイプを単輪図案と呼びます.
-위키피디아
用途に応じて、共通のオブジェクトを生成するのは1つだけです.簡単な例を考えてみましょう.
class DeliveryInfo {
static let shared = DeliveryInfo()
var menu: String?
var additionalMenu: String?
var address: String?
}
アプリケーションがビューA -> B -> C
順にメニューを設定したり、他のメニューを設定したり、アドレスを入力したりしている場合.各
A, B, C Viewcontroller
に各DeliveryInfo
のインスタンスが作成された場合、各インスタンスには1つの情報しか格納されません.1つのインスタンスで格納できますが、3つのインスタンスが使用されているため、メモリの損失になります.
では、グローバルインスタンスを作成し、
A -> B -> C
間をループして各情報を保存するとどうなるのでしょうか.この設計を
singleton pattern
と呼ぶ.該当するブログを参照してください.
🏷 P.S.
UITableView Automatic Dimension
を適用してみますが、セルの高さは増加しません...レイアウト設定が間違っているのか、それとも何か見逃しているのか、ゆっくりチェックすべきだと思います.ううう
Reference
この問題について(iOSアプリケーション開発者のデビュープロセス-11), 我々は、より多くの情報をここで見つけました https://velog.io/@cold929/SSAC-iOS-앱-개발자-데뷔과정-11テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol