原创 iOS代碼動態消除iPhone X底部工具條(ToolBar)與鍵盤間的夾縫

在App界面底部增加工具條的情況並不少見,在工具條上增加輸入框更所謂是"應知應會".下面本貓就向大家介紹如何適配iPhoneX中底部工具條與彈出鍵盤的相對位置. 你是怎樣的工具條? 工具條是UIToolbar類的實例,我放在界

原创 1.1 Hello Swift(雨燕)

1.1 Hello Swift(雨燕) 雨燕捎簾入,風花擁檻浮 The Swift brings in the curtain, with the wind and flowers float on the threshold

原创 1.2 Objective-C語言和它的後繼者:Swift

1.2 Objective-C語言和它的後繼者:Swift 青出於藍而勝於藍 冰凝於水而寒於水 1981年Brad Cox和Tom Love還在ITT公司任職時,接觸到了SmallTalk語言,於是Cox寫了一個C語言處理器,

原创 1.3 Swift語言演進

1.3 Swift語言演進 小荷才露尖尖角,早有蜻蜓立上頭 長風破浪會有時,直掛雲帆濟滄海 俗話說得好:要想掌握一門學科先關注它的發展史,同樣的,要想學好一門語言先看它的進化史。 任何一門卓越的語言,都有其獨特的演進之路,Sw

原创 最直白告訴你Swift語言的rethrows關鍵字到底有什麼用?

說實在的,錯誤處理對於Swift語言來說還算比較簡單,如果你對此早已瞭然於心,請直接略過。 如果你搞不清throws和rethrows到底有什麼區別,你可以留步稍微瞭解一下。 throws 關鍵字 throws很簡單,就是用來告

原创 最新的iOS14操作系統全面消息重裝上陣

引言 病毒肆虐的神州早已恢復生機,新冠蹂躪的地球也已逐漸恢復元氣! 上面這兩個好消息,像春風拂面,捎帶着一年一度果粉期待已久的日子,伴隨着最新的iOS14系統、也伴隨着Apple最新的皇牌手機: iPhone12即將到來。 相信各

原创 神探侯佩系列之智破量子矩陣

在任何一部編程懸疑動作片裏,每一個超級英雄都有一個頹廢的開始… 本故事純屬虛構 如有雷同洗洗睡吧 警告:未經允許禁止轉載!!! 楔子 未知星球。 雨還在下,漆黑的烏雲壓抑的想吐。 極度的黑暗中,一枚紅點忽明忽暗… 一

原创 Mac OS增加文件緩存改善寫入性能

這篇準備寫個直接明瞭的…保證沒有段子… 本文概述瞭如何使得寫入性能提高近5倍的實現。 答案很簡單: Cache!!! func cryptFile(path: String, with keyData: Data) {

原创 深度好文: 爲毛我能通過@State var修改變量? @State屬性修飾器內部腫麼工作的?

問題: 爲毛改變(遵守View協議的結構中)常規的成員變量會報錯? “Cannot assign to property: ‘self’ is immutable” “Cannot use mutating member on

原创 SwiftUI: @propertyWrapper結合Combine打造可觀察屬性

SwiftUI視圖刷新機制雜談 籠統的說,屬性在被改變時想要觸發視圖refresh,需要滿足下面兩種條件之一: 該對象是值類型,所有值類型都不能被修改,只能創建修改後的實例。這使得SwiftUI運行時可以捕獲到這種新創建的時機,藉

原创 SwiftUI中帶格式(Formatter)TextField如何捕獲非法輸入

導言 本文將向大家展示如何利用格式的TextField來過濾用戶非法輸入,同時解決一個TextField的"怪異"行爲。 這是本貓第一篇付費博文,相信不會讓你失望,如果能夠解決到大家的難點、痛點那就更妙了… So廢話少說,Let’

原创 快點射!(Swift Injection) 不帶這樣的!

導言 注入(Injection)在任何語言裏都是非常有效的解耦利器。 請不要把上面的注入和注入攻擊混淆起來,不要把本貓逼得變身成黑客貓 😉 本篇就帶大家看看如何解決Swift中Injection的一個常見問題: 怎麼解決泛型協議實

原创 SwiftUI: 利用Combine三種方式實時監聽用戶文本輸入

引子 自從Swift 5.1加入了Combine之後,腰不酸了,腿不疼了,各種姿勢都能有了… 我真不是在開車… 不過對於SwiftUI中的TextField來說如何實時監聽用戶輸入的文本呢? 貌似TextField自身並沒有帶用

原创 Swift一個小例子帶你瞭解Combine中多重訂閱不丟失(auto replay)的方法

引子 Combine中雖然有衆多內置Operators,但是要想實現對同一個Publisher多次訂閱,且結果不丟失還是比較棘手的,除非實現自定義Publisher,但這不是今天我們的話題 😉 什麼是多重訂閱? 多重訂閱就是多個

原创 Xcode中Playground運行代碼無響應的極簡解決方法

大多數童鞋可能對Xcode中的Playground又愛又恨,我完全可以體會你們的感受… Playground遇到比較多的一種情況就是:執行代碼無響應! 就是點擊那個小三角運行按鈕,等到天荒地老卻此情可待成追憶的趕腳… 這時你把X