原创 iOS視圖成像理論及性能優化

iOS不是一蹴而就的,其中參雜了無數先驅的心血與智慧。在我們享受着iPhone的便捷時,其實我們忽略了很多細節,視圖成像就是這樣。每天我們都會不自然的打開手機,點擊應用,處理信息,獲取快樂,但是我們所看到的一切都是如何來的呢? CR

原创 Go 語言聖經 7.3 實現接口的條件

7.3 實現接口的條件 知識點 1.表達一個類型屬於某個接口只要這個類型實現這個接口 2.即使具體類型有其它的方法也只有接口類型暴露出來的方法會被調用到 3.因爲接口類型被稱爲空接口類型,因此可以將任意值賦給接口類型 代碼

原创 Go 語言聖經 7.4 flag.Value接口

7.4 flag.Value接口 在本章,我們會學到另一個標準的接口類型flag.Value是怎麼幫助命令行標記定義新的符號的。 代碼 章節中樣例 練習 7.6: 對tempFlag加入支持開爾文溫度 練習 7.7: 解釋爲什麼

原创 關於B站播放器ijkPlayer的集成和遇到的bug(持續回覆解答,ios)(QQ:479069761)

首先是準備工作如果你的電腦(僅針對mac)未安裝Homebrew命令工具,清閒安裝ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/maste

原创 菜單分欄tableView

類似半糖、美麗說主頁與QQ音樂歌曲列表佈局效果,實現不同菜單的左右滑動切換, 同時支持類似tableview的頂部工具欄懸停(既可以左右滑動,又可以上下滑動)。 兼容下拉刷新,上拉加載更多。 詳細代碼請移步SHSegmentedCo

原创 Go 語言聖經 7.6 sort.Interface接口

7.6 sort.Interface接口 知識點 1.sort包內置的提供了根據一些排序函數來對任何序列排序的功能 2.Go語言的sort.Sort函數不會對具體的序列和它的元素做任何假設 3.Go使用了一個接口類型sort.I

原创 Go 語言聖經 8.7 基於select的多路複用

8.7 基於select的多路複用 知識點 1.和switch語句稍微有點相似,也會有幾個case和最後的default選擇支 2.每一個case代表一個通信操作(在某個channel上進行發送或者接收)並且會包含一些語句組成的

原创 原圖繪製新圖,字符串繪製圖片

#import <QuartzCore/QuartzCore.h> #import <CoreGraphics/CoreGraphics.h> #import <UIKit/UIKitDefines.h> #define S

原创 Go 語言聖經 8.9 併發的退出

8.9 併發的退出 知識點 1.Go語言並沒有提供在一個goroutine中終止另一個goroutine的方法 2.利用select操作可以使其他操作被取消,並且可以將取消時的延遲從幾百毫秒降低到幾十毫秒 代碼 章節中樣例

原创 Go 語言聖經 7.5 接口值

7.5 接口值 1.有兩部分組成:一個具體的類型,一個此類型的值 2.也被稱爲動態類型和動態值 3.一個接口值可以持有任意大的動態值 4.一個接口上的調用必須使用動態分配 5.接口值得動態類型如果是可以比較的,即可以作爲map的

原创 Go 語言聖經 7.2 接口類型

7.2 接口類型 知識點 1.接口類型具體描述了一系列方法的集合, 而實現這個方法的具體類型是這個接口類型的實例 2.io.Writer類型是用的最廣泛的接口之一,因爲它提供了所有的類型寫入bytes的抽象 3.接口類型可以組合

原创 Go 語言聖經 8.10 示例: 聊天服務

8.10 示例: 聊天服務 代碼 func test_ex_chat() { listener, err := net.Listen("tcp", "localhost:8000") if err != nil

原创 雪花飄落動畫-幀動畫系列

SHSnowflakesAnimation SHSnowflakesAnimation---雪花飄落動畫-幀動畫系列 雪花立體反轉,可改變x,y,z三個不同方向反轉效果-可自行拓展 雪花路線由貝塞爾曲線繪製而成-可自行更改路線

原创 Go 語言聖經 8.8 示例: 併發的目錄遍歷

8.8 示例: 併發的目錄遍歷 知識點 1.利用併發遍歷並計算文件大小 2.利用select,優化打印文件大小 3.利用channel設置最大信號量,來防止打開文件過多 代碼 func test_concurrent_dire

原创 Go 語言聖經 7.8 error接口

7.8 error接口 知識點 1.承載errorString的類型是一個結構體而非一個字符串,這是爲了保護它表示的錯誤避免粗心(或有意)的更新 2.每個New函數的調用都分配了一個獨特的和其他錯誤不相同的實例 代碼 章節