Hello World

CodeTengu Weekly 碼天狗週刊

CodeTengu Weekly 會在 GMT+8 時區的每個禮拜一早上 10:00 出刊,每一期會從目前的 curator 名單中選出三位來負責當期的內容,每個 curator 各自負責不同的領域。如果你在這一期沒有看到自已感興趣的東西,說不定下一期就會有了。你也可以瀏覽一下前幾期的內容

以下是目前的 curator 陣容:

大家也可以關注我們的 FacebookTwitterGitHub微博,有很多 Weekly 看不到的內容。有任何建議或疑問也可以來 Gitter 聊聊,歡迎亂入 👺

致力於解決開發者之間的資訊不對稱  

@saiday


Core Data in iOS 10

這次 Core Data 在 iOS 10 的更新做了很多使用上跟 APIs 的改善,以往被批評的部分幾乎都做了調整。

首先是 Core Data stack,這是剛入門的人最慘烈的痛,只是想要弄個 persistent store 為什麼要逼我設定 NSManagedObjectModel, NSPersistentStoreCoordinator, NSManagedObjectContext,而且沒有主流的 best practice,很可能在還沒有原因的情況就選擇了不一樣的 Core Data stack 實作方式,可以參考 Big Nerd Ranch Core Data Stack 列舉的幾種常見設定。

現在有了一個新類別 NSPersistentContainer,我們可以透過它設定一開始的 Core Data stack,而它也只是封裝了以往使用的東西,帶了一些預設的值跟行為而已。fetch 的行為也直接透過 NSPersistentContainer 操作就可以,非常方便。

詳細閱讀: Core Data in iOS10: NSPersistentContainer

這次 Xcode 8 也解決了以往在 xcdatamodel 的介面定義好 entity 後得自己建立對應的 NSManagedObject subclass 的問題,透過 codegen,在新增或變更後就產生一份給你。其實就是陽春版的 mogenerator

併發的問題也可以透過一個新的類別 NSQueryGenerationToken 來處理,讓以往繁瑣的事情變簡單。

延伸閱讀:NSQueryGenerationToken 官方使用範例

Core Data 經過這次的大調整後,導入門檻終於降到一個合理高度了,已經採用 Core Data 的朋友下次做新的專案也可以用新的方法囉!

 


@mingderwang



@kako0507




工作機會