iOS框架--屬性列表(PropertyList)

plist是什么?

屬性列表是一種結(jié)構(gòu)化數(shù)據(jù)表示,簡(jiǎn)稱做“plist”,它在Cocoa和CoreFoundation中使用,并作為一種便利方式來(lái)存儲(chǔ)、組織和訪問(wèn)標(biāo)準(zhǔn)數(shù)據(jù)類型。

屬性列表被廣泛應(yīng)用在OS X 和 iOS的程序中,比如,OS X Finder使用屬性列表存儲(chǔ)文件和文件夾的屬性。在iOS中經(jīng)常用屬性列表作為配置文件存儲(chǔ)用戶的偏好選項(xiàng)。

plist與NSUserDefault的關(guān)系

NSUserDefaults就是使用屬性列表來(lái)存儲(chǔ)表示用戶偏好的對(duì)象的,因此一些屬性列表不支持的類型,比如NSColor和NSFont,是不能直接存儲(chǔ)到NSUserDefaults的。

plist的訪問(wèn)和存儲(chǔ)方法

你可以用兩種方式將屬性列表序列化到文件系統(tǒng),或者從文件系統(tǒng)反序列化:

  • 如果屬性列表的根對(duì)象是一個(gè)NSDictionary或NSArray對(duì)象(大部分情況),你可以調(diào)用他們的writeToFile:atomically:
    writeToURL:atomically:方法。這兩個(gè)方法會(huì)將屬性列表的所有對(duì)象以XML格式寫人到文件中去。
    同理,調(diào)用initWithContentsOfFile:initWithContentsOfURL:或相應(yīng)工廠方法dictionaryWithContentsOfURL:,都會(huì)讀取屬性列表的數(shù)據(jù)并構(gòu)造相應(yīng)的集合對(duì)象

  • 你可以將屬性列表對(duì)象序列化成NSData對(duì)象,然后寫入文件。先調(diào)用[NSPropertyListSerialization dataFromPropertyList:format:errorDescription:]序列化成NSData對(duì)象,然后調(diào)用[NSData writeToFile:atomically:][NSData writeToURL:atomically:]寫入文件。
    同理,先調(diào)用[NSData [NSData initWithContentsOfFile:][NSData initWithContentsOfURL:]讀取plist文件,再調(diào)用[NSPropertyListSerialization propertyListFromData:mutabilityOption:format:errorDescription:]將NSData對(duì)象反序列化成屬性列表根對(duì)象

兩種方式的比較:第一種方便;第二種靈活,比如可以將format改成binary格式

注意:NSDictionary或NSArray序列化屬性列表時(shí),必須保證里面包含的所有對(duì)象都是屬性列表支持的類型

plist支持的類型

其他自定義的類型想要使用屬性列表存儲(chǔ)的話,需要先歸檔到NSData再存儲(chǔ),因此要先支持歸檔(實(shí)現(xiàn)Coding協(xié)議)才行~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評(píng)論 19 139
  • *面試心聲:其實(shí)這些題本人都沒(méi)怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,666評(píng)論 30 472
  • 循環(huán)引用:http://ios.jobbole.com/82077/類別的作用功能:1.擴(kuò)充現(xiàn)有類的功能2.對(duì)現(xiàn)有...
    得一切從簡(jiǎn)閱讀 587評(píng)論 0 1
  • 文/韓大爺雜貨鋪 原本這篇文字的標(biāo)題想定為《向死而生是種怎樣的體驗(yàn)》,轉(zhuǎn)念一想,去他大爺。 就此作罷。 1. 大約...
    韓大爺?shù)碾s貨鋪閱讀 9,038評(píng)論 134 316
  • Thursday,August 17th 今日的銀川,陰晴不定,我在機(jī)場(chǎng),與你一起今天的晨讀感悟。 幾日來(lái),突覺(jué)自...
    文小輝cool閱讀 509評(píng)論 2 2

友情鏈接更多精彩內(nèi)容