欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Swift中定義單例的方法實例

 更新時間:2018年03月14日 09:48:26   作者:Mellong  
Swift中單例的寫法有很多種,下面這篇文章主要給大家介紹了關(guān)于Swift中定義單例的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

什么是單例

單例模式是設(shè)計模式中最簡單的一種,甚至有些模式大師都不稱其為模式,稱其為一種實現(xiàn)技巧,因為設(shè)計模式講究對象之間的關(guān)系的抽象,而單例模式只有自己一個對象。

單例模式(Singleton Pattern),也叫單子模式,是一種常用的軟件設(shè)計模式。 在應(yīng)用這個模式時,單例對象的類必須保證只有一個實例存在。

單實例Singleton設(shè)計模式可能是被討論和使用的最廣泛的一個設(shè)計模式了,這可能也是面試中問得最多的一個設(shè)計模式了。這個設(shè)計模式主要目的是想在整個系統(tǒng)中只能出現(xiàn)一個類的實例。這樣做當然是有必然的,比如你的軟件的全局配置信息,或者是一個Factory,或是一個主控類,等等。

如何在 swift 中創(chuàng)建單例

在 swift 中有以下這兩種方式可以創(chuàng)建單例

全局變量的方式

let sharedNetworkManager = NetworkManager(baseURL: API.baseURL)
class NetworkManager {
 // MARK: - Properties
 let baseURL: URL
 // Initialization
 init(baseURL: URL) {
 self.baseURL = baseURL
 }
}

使用該全局變量進行引用

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
 print(sharedNetworkManager)
 return true
}

靜態(tài)屬性及私有化構(gòu)造方法的方式

class NetworkManager {
 // MARK: - Properties
 private static var sharedNetworkManager: NetworkManager = {
 let networkManager = NetworkManager(baseURL: API.baseURL)
 // Configuration
 // ...
 return networkManager
 }()
 // MARK: -
 let baseURL: URL
 // Initialization
 private init(baseURL: URL) {
 self.baseURL = baseURL
 }
 // MARK: - Accessors
 class func shared() -> NetworkManager {
 return sharedNetworkManager
 }
}

直接調(diào)用類方法進行引用

NetworkManager.shared()

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

參考自: What Is a Singleton and How To Create One In Swift

相關(guān)文章

  • Swift調(diào)用Objective-C編寫的API實例

    Swift調(diào)用Objective-C編寫的API實例

    這篇文章主要介紹了Swift調(diào)用Objective-C編寫的API實例,介紹的比較全面和詳細,對Objective-C代碼的重復(fù)利用有極大好處,的朋友可以參考下
    2014-07-07
  • Swift利用CoreData如何存儲多種數(shù)據(jù)類的通訊錄

    Swift利用CoreData如何存儲多種數(shù)據(jù)類的通訊錄

    這篇文章主要給大家介紹了關(guān)于Swift利用CoreData如何存儲多種數(shù)據(jù)類的通訊錄的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • Switch語句的技巧

    Switch語句的技巧

    switch語句對一個表達式求值,將結(jié)果與 case 子語句比較,如果匹配,則從 case 處的語句向下執(zhí)行,本文給大家介紹Switch語句的技巧,需要的朋友參考下吧
    2016-02-02
  • Swift編程中的一些類型轉(zhuǎn)換方法詳解

    Swift編程中的一些類型轉(zhuǎn)換方法詳解

    這篇文章主要介紹了Swift編程中的一些類型轉(zhuǎn)換方法詳解,是Swift入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11
  • Swift仿微信語音通話最小化時后的效果實例代碼

    Swift仿微信語音通話最小化時后的效果實例代碼

    這篇文章主要介紹了Swift仿微信語音通話最小化時后的效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Swift實現(xiàn)快速排序算法的代碼示例

    Swift實現(xiàn)快速排序算法的代碼示例

    這篇文章主要介紹了Swift實現(xiàn)快速排序算法的代碼示例,首先利用分治法講解了快速排序的思路,需要的朋友可以參考下
    2016-07-07
  • Swift實現(xiàn)無限輪播效果

    Swift實現(xiàn)無限輪播效果

    這篇文章主要為大家詳細介紹了Swift無限輪播效果實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • SwiftUI?引導(dǎo)頁界面實現(xiàn)示例

    SwiftUI?引導(dǎo)頁界面實現(xiàn)示例

    這篇文章主要為大家介紹了SwiftUI?引導(dǎo)頁界面實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Swift設(shè)計思想Result<T>與Result<T,?E:?Error>類型解析

    Swift設(shè)計思想Result<T>與Result<T,?E:?Error>類型解析

    這篇文章主要為大家介紹了Swift設(shè)計思想Result<T>與Result<T,?E:?Error>的類型示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 簡陋的swift carthage copy-frameworks 輔助腳本代碼

    簡陋的swift carthage copy-frameworks 輔助腳本代碼

    下面小編就為大家分享一篇簡陋的swift carthage copy-frameworks 輔助腳本代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01

最新評論