LikeABossApp

我養罷個,罷個養我

[Swift小教室] guard 錯誤守衛

舊有的撰寫風格

在寫objc時我們時常看到這樣的寫法:

這邊很自然的使用if-else來區分成功與失敗兩塊block並各自做處理,不過在使用OClint等程式風格分析工具後,它會建議我們改寫成:

第二種寫法早一步偵測出錯誤,並且在第一時間處理error後,return掉該function不再繼續往下執行,看到這樣的建議撰寫風格讓我不經好奇它有什麼特別之處呢? (繼續閱讀…)

[Swift小教室] 關於inout(copy-in copy-out)

在Swift中,一個function傳入的參數無法直接改變它的值,先看一個例子:

這段程式碼試圖增加1點參數值"value",而complier此時會產生以下error:

會產生這個error是因為,Swift的function中的參數都是以pass-by-value的方式傳遞,也就是在function外部先copy一份再帶進function中,而function中的參數預設都是以常數為型態,所以無法修改。 (繼續閱讀…)

刪除 git 中 features 所有的 branches

開發時常常 branch 越開越多,但其實很多 branch 在 merge 回 develop 裡之後就可以刪掉了,於是查到了這麼一段指令,用來刪除所有 local 與 remote 中 feature 底下所有的 branch,使用前一定要確保還需要用到的 branch 有做備份。

The Core Data Stack學習記錄

The managed object model

NSManagedObjectModel表示app中每個物件類型的數據模式

Note:NSManagedObjectModel是怎麼聯繫數據模式的?我們可以在Xcdoe上創建與編輯xcdatamodel這個文件,有一個特別的compiler(編譯器)叫momc,它complies model文件成為一套文件,然後放進一個momd資料夾中。

Core Data用momd資料夾中的內容在runtime初始化NSManagedObjectModel (繼續閱讀…)

關於lazy variable

lazy variable從iOS 7.0開始加入

當你需要的時候才建立複雜的object在iOS中是非常普遍的,Swift有一個適合運用在即時複雜運算的機制 – lazyvariable,

這些variable會利用function來建立,只有在被呼叫時才會跑function裡的內容,

整體來說可以節省處理的時間。 (繼續閱讀…)