做者: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。