ios学习iOS精华iOS技术专题

苹果官方文档中文译本之-PHAdjustmentData

2015-12-03  本文已影响922人  大亮Coder

隶属:Photos.framework


PHAdjustmentData(adjustmentData,调整的数据)

当用户编辑了一个asset(相册中的多媒体文件)、Photos框架会随着修改后的图像或视频数据生成一个adjustmentData对象。这个对象提供了程序默认的初始数据可以用来重现恢复这个编辑过的asset。
例如:如果你对一张照片进行了滤镜处理,你应该会创建一个adjustmentData对象,它记录了用户选择了什么滤镜、相关配置的参数、以及使用这(款/些)滤镜的命令。接下去,用户可以用你的app或者别的可以获取你的adjustmentData对象的app来恢复这张照片到初始状态。

对于每个asset来说,Photos框架只会储存一个adjustmentData对象,它记录了最近一次对asset做出的编辑。


-创建一个adjustmentData对象
调用下面这个方法可以通过特定的格式和数据初始化一个adjustmentData对象。
SWIFT

init(formatIdentifier formatIdentifier: String,
        formatVersion formatVersion: String,
                 data data: NSData)

OBJECTIVE-C

- (instancetype)initWithFormatIdentifier:(NSString *)formatIdentifier
                           formatVersion:(NSString *)formatVersion
                                    data:(NSData *)data

❗️参数说明:
formatIdentifier:该对象格式的唯一标识
formatVersion:该对象格式的版本号
data:一个用以表达哪些信息在会被用到adjustmentData中的序列化的表格

❗️返回值:
一个初始化了的adjustmentData对象

❗️相关探讨:
formatIdentifierformatVersion这两个参数可以帮助你在编辑已经编辑过的asset时知道是否要解析adjustmentData以及怎么去解析,为了区别是不是你的app作出的改动,最好的办法就是使用逆向DNS标识符和递进的版本号。
例如:你的app第一版开发好了,你可以用com.example.myApp作为标识符以及设置版本号为1.0,用他俩来保存你的adjustmentData,如果你的app下一版加了一些不兼容的信息给adjustmentData,你可以用同样的标识符并且将版本号增加至2.0。
data参数来保存不管是不是对你的app有用的数据,它只是为了让asset可以重现恢复。
例如:如果你的app给一张照片使用了一款CoreImage中的滤镜,你可以用这个属性去保存一个描述了这款滤镜和它的相关参数的序列化的表格。

提示:因为Photos框架限制了`adjustmentData `的大小,你需要保证你修改的信息短小而精悍,不要用图片来描述你的修改,只保存修改所必须用到的最小的信息。

你的app必须提供一个不为空的NSData对象来作为data参数,如果你不能提供,你可以传一个经过编码的NSUUID对象来作为data参数。

❗️可用性:
iOS 8.0 及以后


-识别一个adjustmentData对象的格式
formatIdentifier属性(只读),用以唯一识别adjustmentData
SWIFT

var formatIdentifier: String { get }

OBJECTIVE-C

@property(readonly, copy) NSString *formatIdentifier

❗️相关探讨:
当你通过调用initWithFormatIdentifier:formatVersion:data:方法创建一个adjustmentData对象时会给这个属性赋值,最好是通过你的团队或产品的逆向DNS的名字来设置,比如com.example.myApp
通过读取该属性和formatVersion属性来确定adjustmentData是通过你的app创建的还是其他兼容的app。

❗️可用性:
iOS 8.0 及以后


formatVersion属性(只读),用以告知一个adjustmentData格式的版本号。
SWIFT

var formatVersion: String { get }

OBJECTIVE-C

@property(readonly, copy) NSString *formatVersion

❗️相关探讨:
当你通过调用initWithFormatIdentifier:formatVersion:data:方法创建一个adjustmentData对象时会给这个属性赋值。
通过读取该属性和formatIdentifier属性来确定adjustmentData是通过你的app创建的还是其他兼容的app。
例如:你的app第一版开发好了,你可以用com.example.myApp作为标识符以及设置版本号为1.0,用他俩来保存你的adjustmentData,如果你的app下一版加了一些不兼容的信息给adjustmentData,你可以用同样的标识符并且将版本号增加至2.0。

❗️可用性:
iOS 8.0 及以后


-识别一个adjustmentData对象的格式
data属性(只读),包含了adjustmentData所需的必要信息。
SWIFT

var data: NSData { get }

OBJECTIVE-C

@property(readonly, strong) NSData *data

❗️相关探讨:
用这个属性可以恢复对asset上一次的编辑。
例如:如果你的app给一张照片使用了一款CoreImage中的滤镜,你可以用这个属性去保存一个描述了这款滤镜和它的相关参数的序列化的表格。用formatIdentifier属性和formatVersion来确定你的app是否可以解析保存的adjustmentData

❗️可用性:
iOS 8.0 及以后


更多章节,未完待续...

上一篇下一篇

猜你喜欢

热点阅读