做者:Ole Begemann,原文連接,原文日期:2018-09-28html
譯者:張弛;校對:numbbbbb,Yousanflics;定稿:Forelaxgit
在 iOS 系統中,PhotoKit 框架 不只被系統的照片 App 所使用,同時它也爲開發人員訪問設備的照片庫提供了接口支持。而它的底層則是 Core Data 實現的。github
至少從這兩個地方,你就能夠確認這一點:shell
-com.apple.CoreData.SQLDebug 1.
來啓動這個應用程序。當你訪問照片庫時,從控制檯就能夠看到 Core Data 的調試信息。NSManagedObjectID
和其餘 Core Data 類型的引用,例如, PHObject
有一個 _objectID:NSManagedObjectID
的 ivar。爲了更好地理解 PhotoKit 框架(特別是它的性能特徵),我檢查了它的數據模型。我在 Xcode 10.0 應用程序的包內容中找到了一個名爲 PhotoLibraryServices.framework / photos.momd / photos-10.0.mom
的文件:swift
/Applications/Xcode-10.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/photos.momd/photos-10.0.mom
複製代碼
你可使用以下的命令來查找 Xcode 中模擬器運行時內的其餘 Core Data 模型:app
find /Applications/Xcode-10.app -name '*.mom'
框架
.mom
文件是已編譯的 Core Data 數據模型。Xcode 沒法直接打開它,但能夠將它導入到另外一個 Core Data 模型中。經過以下的步驟,咱們就能夠在 Xcode 中查看這個模型:編輯器
.xcdatamodeld
包。.mom
文件。不幸的是,編譯的模型並不存儲 Xcode 的模型編輯器的佈局信息,所以你必須手動將編輯器中的實體拖出來一個漂亮的樣式中。這花了我幾個小時。佈局
舒適提示:你可使用箭頭鍵(和 shift 鍵+箭頭鍵)精肯定位事物。性能
專家提示:請勿點擊 ⌘Z 撤消移動操做。對圖形的編輯不會被 Xcode 視做一個可撤銷的操做,所以 Xcode 可能會撤消一開始的導入操做,這意味着你將丟失全部未保存的工做。
這是與 Xcode 10.0(iOS 12.0)捆綁在一塊兒的 photos-10.0.mom
:
並不是全部的內容都能在這張圖片中被看到。你能夠 下載完整模型 並在 Xcode 中查看它的一些屬性。
請注意,這不必定是 iOS 上的照片的完整數據模型。更多的一些 Core Data 模型被放置在 PrivateFrameworks/PhotoAnalysis.framework
中。
本文由 SwiftGG 翻譯組翻譯,已經得到做者翻譯受權,最新文章請訪問 swift.gg。