原创 SwiftUI 和 Swift 5.1 新特性之:不透明返回類型

今年 WWDC 最重要的關注點是什麼?Swift!Swift 5.0 ABI 達到穩定,Swift 5.1 達到 Module Stability,預示着 Swift 進入了成熟期。蘋果也開始認真地吃自己的狗食了,我們看到這屆大會上推出了幾

原创 WWDC 19 Day 1:iOS 13 新特性和麪試題

大家好,我是面試官小健。 iOS 開發屆的春晚 WWDC 19 於 北京時間 6 月 4 日 凌晨在美國聖何塞開幕,整個大會爲期一週。根據慣例,第一天的 Keynote 以及 Platforms State of the Union 是提綱

原创 Swift 5 新特性:Result<Success, Failure> 類型、Monad 和 Functor

在Swift 5 之前,拋出和處理錯誤的標準做法是使用 throws try catch, 異步錯誤使用的是 completion: @escaping (ResponseType?, ErrorType?) -> Void 的形式進行回調

原创 2018年度回顧

你希望這個世界如何並不重要,重要的是你認清這個世界事實上是怎樣的,並在接受這樣的事實的前提下努力去做一點事情。——李光耀 這一年的重心又是都放在工作上,進入一個新的環境總是要有個磨合期,這個過程中的跌宕起伏、險象環生,其中細節也只有一些

原创 Swift 4.2 新特性詳解 Hashable 和 Hasher

Hashable 的 Conditional Conformance 使用 Dictionary 和 Set 的時候要求用作 Key 的類型實現 Hashable 協議。由於大多數內置類型天生是 Hashable,因此大多數情況下,無需手動

原创 Swift 4.2 新特性詳解 Conditional Conformance 的更新

隨着 Xcode 10 的正式版發佈,Swift 4.2 也正式問世,在 Swift 4.1 中引入的 Conditional Conformance 也有了一個小的升級,使用便利性再次提升。不瞭解 Swift 4.1 的同學也沒有關係,本

原创 Swift 面試真題:五問 Any 和 AnyObject

閱讀本文前,假設你已經熟悉 Swift 的 Any 和 AnyObject 的相關知識。 請寫出下面程序的運行結果:包含“寫出輸出”和“編譯失敗”兩種情況。 Swift版本:3.2、3.3、4.0、4.1 題1 let s: AnyObje

原创 Swift 4.1 新特性 (4) Codable的改進

在 Swift 4.0 的標準庫中,引入了 Codable 接口,它實際上是 Encodable & Decodable 兩個接口的複合接口。感謝編譯器的加持,可以很方便地合成 init(from:Decoder) 以及 encode(to

原创 iOS 12 開發者筆記 @WWDC 18, Day 2

WWDC 第二天,爲大家帶來 What's new in Swift 以及 What's new in Cocoa Touch 兩個 重要 Session 的精華內容。 What's new in Swift 分兩個部分:Swift環境 和

原创 Swift 4.1 新特性 (5) associatedtype的遞歸約束

本系列的最後一篇文章,我們來了解一下 Swift 4.1 的最後一個重要特性,它也和泛型相關:關聯類型的遞歸約束。該特性解決了 Swift 泛型中的一大尷尬,關聯類型無法遞歸定義。 1. Sequence 的關聯類型 Swift 4.1 之

原创 iOS 12 開發者筆記 @WWDC 18, Day 1

今天是WWDC 18的第一天,如果說上午的 Keynote 是面向每一位聽衆的,那麼下午的 Platform State of the Union 主要就面向開發者了。新鮮出爐,筆者帶大家回顧一下這兩個 Session 中對 iOS 開發來

原创 Swift 4.1 新特性 (3) 合成 Equatable 和 Hashable

編譯器合成 (synthesize) 是十分重要的功能,它把開發者從簡單重複的勞動中解放出來。在Swift 4.0 中,我們知道 Codable 可以合成相關函數,於是 Codable 的實現者在大部分情況下不需要實現相關函數。 到了 Sw

原创 Swift 4.1 遷移技巧

理論上來講,升級到一個小版本的語言和SDK的更新,應該是個比較順滑的過程。然而這次Swift 4.1 / Xcode 9.3 的升級所帶來的工作超出了預期。下面分『通過編譯』、『通過測試』以及『去除警告』三個步驟來說。 1. 通過編譯 相信