原创 Swift學習筆記 (二十六) 可選鏈式調用

可選鏈式調用是一種可以在當前值可能爲 nil 的可選值上請求和調用屬性、方法及下標的方法。如果可選值有值,那麼調用就會 成功;如果可選值是 nil ,那麼調用將返回 nil 。多個調用可以連接在一起形成一個調用鏈,如果其中任何一個節點爲 

原创 Swift學習筆記 (二十三) 構造過程(上)

構造過程是使用類、結構體或枚舉類型的實例之前的準備過程。在新實例使用前有個過程是必須的,它包括設置實例中每個存儲 屬性的初始值和執⾏其他必須的設置或構造過程。 你要通過定義構造器來實現構造過程,它就像用來創建特定類型新實例的特殊方法。與

原创 Swift學習筆記 (二十八) 類型轉換

類型轉換可以判斷實例的類型,也可以將實例看做是其父類或者子類的實例。 類型轉換在 Swift 中使用 is 和 as 操作符實現。這兩個操作符分別提供了一種簡單達意的方式去檢查值的類型或轉換它的類型。 你也可以⽤它來檢查一個類型是否遵循了

原创 Swift學習筆記 (三十八) 內存安全

默認情況下,Swift 會阻止你代碼里不安全的行爲。例如,Swift 會保證變量在使⽤之前就完成初始化,在內存被回收之後就無法 被訪問,並且數組的索引會做越界檢查。 Swift 也保證同時訪問同一塊內存時不會衝突,通過約束代碼里對於存儲地

原创 Swift學習筆記 (三十) 擴展

擴展可以給一個現有的類,結構體,枚舉,還有協議添加新的功能。它還擁有不需要訪問被擴展類型源代碼就能完成擴展的能⼒ (即逆向建模)。擴展和 Objective-C 的分類很相似。(與 Objective-C 分類不同的是,Swift 擴展是

原创 Swift學習筆記 (三十三) 協議(下)

檢查協議一致性 你可以使⽤《類型轉換》中描述的 is 和 as 操作符來檢查協議一致性,即是否符合某協議,並且可以轉換到指定的協議類型。檢 查和轉換協議的語法與檢查和轉換類型是完全一樣的:     1. is 用來檢查實例是否符合某個協議

原创 Swift學習筆記 (三十一) 協議(上)

協議定義了一個藍圖,規定了用來實現某一特定任務或者功能的方法、屬性,以及其他需要的東西。類、結構體或枚舉都可以遵 循協議,併爲協議定義的這些要求提供具體實現。某個類型能夠滿足某個協議的要求,就可以說該類型遵循這個協議。 除了遵循協議的類型

原创 Swift學習筆記 (三十二) 協議(中)

委託 委託是一種設計模式,它允許類或結構體將一些需要它們負責的功能委託給其他類型的實例。委託模式的實現很簡單:定義協議來 封裝那些需要被委託的功能,這樣就能確保遵循協議的類型能提供這些功能。委託模式可以用來響應特定的動作,或者接收外部 數

原创 Swift學習筆記 (三十九) 訪問控制

訪問控制可以限定其它源文件或模塊中的代碼對你的代碼的訪問級別。這個特性可以讓我們隱藏代碼的一些實現細節,並且可以 爲其他人可以訪問和使用的代碼提供接口。 你可以明確地給單個類型(類、結構體、枚舉)設置訪問級別,也可以給這些類型的屬性、方法

原创 Swift學習筆記 (二十) 方法

⽅法是與某些特定類型相關聯的函數。類、結構體、枚舉都可以定義實例方法;實例方法爲給定類型的實例封裝了具體的任務與 功能。類、結構體、枚舉也可以定義類型方法;類型方法與類型本身相關聯。類型方法與 Objective-C 中的類方法 (cla

原创 Swift學習筆記 (三十五) 泛型(下)

關聯類型 定義一個協議時,聲明一個或多個關聯類型作爲協議定義的一部分將會非常有用。關聯類型爲協議中的某個類型提供了一個佔位 符名稱,其代表的實際類型在協議被遵循時纔會被指定。關聯類型通過 associatedtype 關鍵字來指定。  

原创 Swift學習筆記 (三十四) 泛型(上)

泛型代碼讓你能根據自定義的需求,編寫出適用於任意類型的、靈活可複用的函數及類型。你可避免編寫重複的代碼,⽽是用一 種清晰抽象的方式來表達代碼的意圖。 泛型是 Swift 最強大的特性之一,很多 Swift 標準庫是基於泛型代碼構建的。實際

原创 Swift學習筆記 (二十一) 下標

下標可以定義在類、結構體和枚舉中,是訪問集合、列表或序列中元素的快捷方式。可以使用下標的索引,設置和獲取值,而不 需要再調用對應的存取方法。舉例來說,⽤下標訪問一個 Array 實例中的元素可以寫作 someArray[index] ,訪

原创 Swift學習筆記 (二十四) 構造過程(下)

指定構造器和便利構造器實踐 接下來的例子將在實踐中展示指定構造器、便利構造器以及構造器的自動繼承。這個例子定義了包含三個類 Food 、  RecipeIngredient 以及 ShoppingListItem 的層級結構,並將演示它們

原创 Swift學習筆記 (二十二) 繼承

一個類可以繼承另一個類的⽅法,屬性和其它特性。當一個類繼承其它類時,繼承類叫子類,被繼承類叫超類(或父類)。在 Swift 中,繼承是區分「類」與其它類型的一個基本特徵。 在 Swift 中,子類可以調用和訪問超類的方法、屬性和下標,並