蘋果官方文檔中文譯本之-PHAdjustmentData

隸屬:Photos.framework


PHAdjustmentData(adjustmentData哼勇,調(diào)整的數(shù)據(jù))

當(dāng)用戶編輯了一個(gè)asset(相冊(cè)中的多媒體文件)、Photos框架會(huì)隨著修改后的圖像或視頻數(shù)據(jù)生成一個(gè)adjustmentData對(duì)象。這個(gè)對(duì)象提供了程序默認(rèn)的初始數(shù)據(jù)可以用來重現(xiàn)恢復(fù)這個(gè)編輯過的asset荔燎。
例如:如果你對(duì)一張照片進(jìn)行了濾鏡處理,你應(yīng)該會(huì)創(chuàng)建一個(gè)adjustmentData對(duì)象丢胚,它記錄了用戶選擇了什么濾鏡、相關(guān)配置的參數(shù)受扳、以及使用這(款/些)濾鏡的命令携龟。接下去,用戶可以用你的app或者別的可以獲取你的adjustmentData對(duì)象的app來恢復(fù)這張照片到初始狀態(tài)勘高。

  • 當(dāng)你在編輯一個(gè)asset時(shí)峡蟋,你就會(huì)創(chuàng)建一個(gè)adjustmentData對(duì)象進(jìn)行工作。它可以通過兩種方法進(jìn)行工作:
    一华望、直接讓asset對(duì)象調(diào)用PHAsset(PHContentEditingInput)類目中的requestContentEditingInputWithOptions:completionHandler:方法蕊蝗。
    二、讓相關(guān)照片編輯的視圖控制器實(shí)現(xiàn)PhotosUI.frameworkPHContentEditingController協(xié)議的方法赖舟。

  • 當(dāng)用戶通過PHContentEditingInput對(duì)象開始進(jìn)行一個(gè)asset編輯蓬戚,會(huì)通過檢查PHContentEditingInput對(duì)象的adjustmentData屬性來決定該asset上一次的編輯結(jié)果是否與你的app兼容,如果兼容宾抓,則用戶可以將asset恢復(fù)到初始狀態(tài)子漩,否則只能對(duì)上一次的操作做進(jìn)一步的修改。

  • 當(dāng)用戶通過PHContentEditingOutput對(duì)象來進(jìn)行編輯asset洞慎,會(huì)提供一個(gè)代表由你的app做操作而生成的一個(gè)全新的adjustmentData對(duì)象痛单。

對(duì)于每個(gè)asset來說,Photos框架只會(huì)儲(chǔ)存一個(gè)adjustmentData對(duì)象劲腿,它記錄了最近一次對(duì)asset做出的編輯旭绒。


-創(chuàng)建一個(gè)adjustmentData對(duì)象
調(diào)用下面這個(gè)方法可以通過特定的格式和數(shù)據(jù)初始化一個(gè)adjustmentData對(duì)象。
SWIFT

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

OBJECTIVE-C

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

??參數(shù)說明:
formatIdentifier:該對(duì)象格式的唯一標(biāo)識(shí)
formatVersion:該對(duì)象格式的版本號(hào)
data:一個(gè)用以表達(dá)哪些信息在會(huì)被用到adjustmentData中的序列化的表格

??返回值:
一個(gè)初始化了的adjustmentData對(duì)象

??相關(guān)探討:
formatIdentifierformatVersion這兩個(gè)參數(shù)可以幫助你在編輯已經(jīng)編輯過的asset時(shí)知道是否要解析adjustmentData以及怎么去解析焦人,為了區(qū)別是不是你的app作出的改動(dòng)挥吵,最好的辦法就是使用逆向DNS標(biāo)識(shí)符和遞進(jìn)的版本號(hào)。
例如:你的app第一版開發(fā)好了花椭,你可以用com.example.myApp作為標(biāo)識(shí)符以及設(shè)置版本號(hào)為1.0忽匈,用他倆來保存你的adjustmentData,如果你的app下一版加了一些不兼容的信息給adjustmentData矿辽,你可以用同樣的標(biāo)識(shí)符并且將版本號(hào)增加至2.0丹允。
data參數(shù)來保存不管是不是對(duì)你的app有用的數(shù)據(jù),它只是為了讓asset可以重現(xiàn)恢復(fù)袋倔。
例如:如果你的app給一張照片使用了一款CoreImage中的濾鏡雕蔽,你可以用這個(gè)屬性去保存一個(gè)描述了這款濾鏡和它的相關(guān)參數(shù)的序列化的表格。

提示:因?yàn)镻hotos框架限制了`adjustmentData `的大小宾娜,你需要保證你修改的信息短小而精悍批狐,不要用圖片來描述你的修改,只保存修改所必須用到的最小的信息前塔。

你的app必須提供一個(gè)不為空的NSData對(duì)象來作為data參數(shù)嚣艇,如果你不能提供承冰,你可以傳一個(gè)經(jīng)過編碼的NSUUID對(duì)象來作為data參數(shù)。

??可用性:
iOS 8.0 及以后


-識(shí)別一個(gè)adjustmentData對(duì)象的格式
formatIdentifier屬性(只讀)食零,用以唯一識(shí)別adjustmentData困乒。
SWIFT

var formatIdentifier: String { get }

OBJECTIVE-C

@property(readonly, copy) NSString *formatIdentifier

??相關(guān)探討:
當(dāng)你通過調(diào)用initWithFormatIdentifier:formatVersion:data:方法創(chuàng)建一個(gè)adjustmentData對(duì)象時(shí)會(huì)給這個(gè)屬性賦值,最好是通過你的團(tuán)隊(duì)或產(chǎn)品的逆向DNS的名字來設(shè)置慌洪,比如com.example.myApp顶燕。
通過讀取該屬性和formatVersion屬性來確定adjustmentData是通過你的app創(chuàng)建的還是其他兼容的app。

??可用性:
iOS 8.0 及以后


formatVersion屬性(只讀)冈爹,用以告知一個(gè)adjustmentData格式的版本號(hào)涌攻。
SWIFT

var formatVersion: String { get }

OBJECTIVE-C

@property(readonly, copy) NSString *formatVersion

??相關(guān)探討:
當(dāng)你通過調(diào)用initWithFormatIdentifier:formatVersion:data:方法創(chuàng)建一個(gè)adjustmentData對(duì)象時(shí)會(huì)給這個(gè)屬性賦值。
通過讀取該屬性和formatIdentifier屬性來確定adjustmentData是通過你的app創(chuàng)建的還是其他兼容的app频伤。
例如:你的app第一版開發(fā)好了恳谎,你可以用com.example.myApp作為標(biāo)識(shí)符以及設(shè)置版本號(hào)為1.0,用他倆來保存你的adjustmentData憋肖,如果你的app下一版加了一些不兼容的信息給adjustmentData因痛,你可以用同樣的標(biāo)識(shí)符并且將版本號(hào)增加至2.0。

??可用性:
iOS 8.0 及以后


-識(shí)別一個(gè)adjustmentData對(duì)象的格式
data屬性(只讀)岸更,包含了adjustmentData所需的必要信息鸵膏。
SWIFT

var data: NSData { get }

OBJECTIVE-C

@property(readonly, strong) NSData *data

??相關(guān)探討:
用這個(gè)屬性可以恢復(fù)對(duì)asset上一次的編輯。
例如:如果你的app給一張照片使用了一款CoreImage中的濾鏡怎炊,你可以用這個(gè)屬性去保存一個(gè)描述了這款濾鏡和它的相關(guān)參數(shù)的序列化的表格谭企。用formatIdentifier屬性和formatVersion來確定你的app是否可以解析保存的adjustmentData

??可用性:
iOS 8.0 及以后


更多章節(jié)评肆,未完待續(xù)...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末债查,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瓜挽,更是在濱河造成了極大的恐慌盹廷,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件久橙,死亡現(xiàn)場(chǎng)離奇詭異俄占,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)淆衷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門颠放,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吭敢,你說我怎么就攤上這事∧喊牛” “怎么了鹿驼?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵欲低,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我畜晰,道長(zhǎng)砾莱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任凄鼻,我火速辦了婚禮腊瑟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘块蚌。我一直安慰自己闰非,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布峭范。 她就那樣靜靜地躺著财松,像睡著了一般。 火紅的嫁衣襯著肌膚如雪纱控。 梳的紋絲不亂的頭發(fā)上辆毡,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天,我揣著相機(jī)與錄音甜害,去河邊找鬼舶掖。 笑死,一個(gè)胖子當(dāng)著我的面吹牛尔店,可吹牛的內(nèi)容都是我干的眨攘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼闹获,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼期犬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起避诽,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤龟虎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后沙庐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鲤妥,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年拱雏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了棉安。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡铸抑,死狀恐怖贡耽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤蒲赂,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布阱冶,位于F島的核電站,受9級(jí)特大地震影響滥嘴,放射性物質(zhì)發(fā)生泄漏木蹬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一若皱、第九天 我趴在偏房一處隱蔽的房頂上張望镊叁。 院中可真熱鬧,春花似錦走触、人聲如沸晦譬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蛔添。三九已至,卻和暖如春兜辞,著一層夾襖步出監(jiān)牢的瞬間迎瞧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工逸吵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凶硅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓扫皱,卻偏偏與公主長(zhǎng)得像足绅,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子韩脑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • http://liuxing.info/2017/06/30/Spring%20AMQP%E4%B8%AD%E6%...
    sherlock_6981閱讀 15,940評(píng)論 2 11
  • 許多UIView的子類氢妈,如一個(gè)UIButton或一個(gè)UILabel,它們知道怎么繪制自己段多。遲早首量,你也將想要做一些自...
    shenzhenboy閱讀 1,652評(píng)論 2 8
  • 如果不能去改變世界,那就被世界改變 我們期望美好的事物一直靜止进苍,至少停頓. 我們以為那是最理想的世界. 就像螞蟻的...
    TOMPHOENIX閱讀 214評(píng)論 0 2
  • 一 我有病 我知道 二 究竟是誰(shuí) 先為自己的原罪 做了言不由衷的懺悔 三 借君一寸席 訴我二三兩心意 四 我知道 ...
    零琋閱讀 302評(píng)論 5 4
  • 從關(guān)于畢業(yè)設(shè)計(jì)的方案下來后加缘,小衛(wèi)就一直像裝了心事,每天愁眉不展觉啊。小衛(wèi)認(rèn)為創(chuàng)作一個(gè)好的作品一定要有一個(gè)好的團(tuán)...
    疙瘩爾閱讀 1,160評(píng)論 0 1