我試圖對一個首選項文件進行反向工程(不是爲了任何惡意目的,只是爲了我可以使用它),除此之外,還有存儲在其中的座標數組。如何在屬性列表中解碼base64編碼的<data>(CFData/NSData)屬性?
這是從屬性列表中的突出的片段:
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>34</integer>
</dict>
<key>coordArray</key>
<data>
AAAAAAAAAAAAAAAAAAAAAT70vS8/M7xSPwAAAD8AAAA/AAAA
</data>
<key>coordCount</key>
<integer>1</integer>
</dict>
我認爲數據串是座標的陣列(基於它的鍵名)。我的問題是,我怎樣才能弄清楚哪些數據存儲在那裏?如果我只是base64解碼該字符串,我會得到亂碼。有沒有辦法將它解碼並將其轉換爲任何格式(NSArray,我認爲)?
該解決方案的優點是數據元素的內容在base64編碼的XML數據中將被plist解析器自動解碼。 NSDictionary對象中的NSData對象將包含已解碼的數據。 – 2010-04-28 17:04:28
謝謝,這很有幫助。我仍然是Objective-C的總Noob,我試圖弄清楚如何編寫和編譯一個可以做到這一點的小程序。 – bantic 2010-05-05 14:18:39
您可以輕鬆地從plist詞典中獲得coordArray。從那裏嘗試各種initWithData:方法來查看是否有任何Foundation類可以處理它。沒有明確的方法來找出你在那裏有什麼。 – 2010-05-05 14:54:07