All Posts

Pass value when Button clicked ( Objective-C )

有時需要再按下某個按button時,把資料跟著一起帶到click event裡。有些人會把資料藏在沒用到的屬性,例如:Tag。較正確的解法還是自己custom一個button。也就是繼承一個UIButton,自己增加一個value。

AFNetworking 3.0 簡單的第一層封裝實作

在AFNetworking3.0安裝好以後,有些人會直接使用在程式碼裡面。但較好的做法是我們在AFNetworking外多包一層,讓我們之後要更改關於網路連線的部分可以更簡單修改,也不需要在每個做連線的部份都要在設定,簡短程式碼,分工更明確。這邊只簡單的做第一層範例。 我們做了兩個block,一個是回傳失敗放入NSError,一個是成功回傳放入dictionary。做了typedef enum,來決定HTTP Method。以及singleton要用的共用接口,和一個function。

自定義類別歸檔儲存(使用NSCoding序列化)

要儲存的自定義類別需要遵守NSCoding這個protocol,並實作以下這兩個method。

使用 iOS 內建 decode 遇到的問題 ( RFC3986 )

使用 iOS 內建 decode 遇到的問題 ( RFC3986 ) 。最近從一些關鍵字組合網址時,發現iOS內建的decode並沒有將&和=符號加在字集裡面。所以導致有些關鍵字在組合時產生錯誤。再仔細用RFC3986的規範去測了一下,發現其實滿多的字符內建的decode都沒有。

使用 Objective-C 實作 KVO (Observer Pattern應用)

這篇文章主要是 使用 Objective-C 實作 KVO (Observer Pattern應用)。KVO(Key-Value-Observing)觀察數值。當看到Observer Pattern,add、observe、remove 就是這三個方法要出現了! 以下就是 Objective-C 對應的三種函數: 增加監聽addObserver: forKeyPath: options:context: 接收監聽observeValueForKeyPath:ofObject:change:context: 移除監聽removeObserver:observer forKeyPath: 這篇範例會開一個PersonModel class,對他做singleton後。觀察裡面的address跟name兩個數值。並實作方法在PersonObserver class。

iOS 在 merge 後遇到 conflict 的解決順序

情況:我們假設這次把一個名為feature_login的branch,merge到develop時遇到conflict。 遇到conflict時會在程式碼裡發現被加上這些符號

iTerm + Oh My Zsh 設定

iTerm + Oh My Zsh 設定。每次重灌mac後就要上網搜尋一下theme跟字體的下載,以及環境的設定,所以寫個記錄。 安裝iTerm2 : https://www.iterm2.com 安裝oh my zsh : http://ohmyz.sh 要是無法安裝,先確認自己有沒有Command Line Tools或是Homebrew。已經安裝過的話,就可以直接按照提示修改,再安裝oh my zsh就可以了。

SDWebImage 清除 cache

近期接個要做第二階段的app,安裝到手機裡使用一段時間後,app容量會越來越大。這種通常都是cache,但是用了好久以後發現似乎沒有清除cache,所以就到code裡搜尋。果然,程式裡沒有清除圖片cache。而這個app正好需要從網路抓很多圖片顯示給使用者…。 其實在iOS開發,大家用的lib就是那幾套,比較少人會自己寫,這app是使用SDWebImage,來抓圖片。SDWebImage的清除機制很簡單,有依照大小,依照時間,依照圖的size,自己選擇條件做清理。 如果真的不曉得怎麼算,或是業主也沒有一個準則,也可直接設定當app的cache超過20M就全清,或是你想cache超更多,這樣做是最簡單的。直接在didFinishLaunching裡[[SDImageCache sharedImageCache] setMaxCacheSize:20 * 1024 * 1024];即可,每次開啟app就會去檢查,超過20M就清理。

幾個好用的網站。圖庫、工具、設計、縮圖、字典

幾個好用的網站,有圖庫、工具、設計、縮圖、字典。

ssh重新驗證

在 Git server 的 address 改動後,舊的public key已經比對不正確,需要ssh重新驗證。 步驟大致上,刪除舊public key,連線ssh(會自動產生一組新public key),確認連線就完成了! 情境:git push時,收到下方warning,原因是 git server 的 ip address有改動,所以local的認證對不上了。我們要先了解一件事:ssh會把你訪問過的電腦的公鑰都記錄在~/.ssh/known_hosts。所以我們只要把在~/.ssh/known_hosts裡的public key刪掉,重新ssh,就可以恢復。