0
NSArchiver如何序列化爲文件?我假設它是以二進制格式進行序列化的,對嗎?如果我想將它存儲在字符串中,那麼我可以存儲到SQLite數據庫中呢?我是否需要編寫自己的自定義NSArchiver?如果是這樣,我該怎麼做呢?那裏有教程嗎?構建一個自定義NSArchiver序列化爲字符串
p.s.我確實意識到Core Data可以做到這一點,但現在讓我們交出這個選擇。
NSArchiver如何序列化爲文件?我假設它是以二進制格式進行序列化的,對嗎?如果我想將它存儲在字符串中,那麼我可以存儲到SQLite數據庫中呢?我是否需要編寫自己的自定義NSArchiver?如果是這樣,我該怎麼做呢?那裏有教程嗎?構建一個自定義NSArchiver序列化爲字符串
p.s.我確實意識到Core Data可以做到這一點,但現在讓我們交出這個選擇。
如果需要,可以歸檔到NSData
對象而不是文件,如果需要,可以使用+archivedDataWithRootObject:
歸檔。它不會是一個「字符串」,但沒關係,因爲Cocoa中的NSString
代表一系列Unicode字符,而NSData
代表一系列字節(您可以輕鬆存儲到任何位置,包括數據庫中)。
請注意,你真的應該使用NSKeyedArchiver
代替:
指南中
什麼(https://developer.apple.com/library/mac /documentation/Cocoa/Conceptual/Archiving/Articles/codingctypes.html#//apple_ref/doc/uid/20001294-96941-BCDCDHHEF)它說:「你不應該用NSData對象包裝結構並存檔」?我試圖存儲的結構是C中的一個雙向鏈接列表。我正在實現它的中間,我目前只是試圖將輸入存儲到C API中,以便稍後使用基本材料重新構建它。 – huggie
這就是關於將什麼信息存入存檔的問題,而不是如何使用存檔的結果位。你的問題似乎在問:「我知道如何使用'NSArchiver',但有沒有辦法將內存歸檔而不是文件?」 'NSArchiver'用於Objective-C對象,而不是C結構,這是指南所說的內容。 –
沒錯,我沒有說,但我碰巧想包裝一個用C寫成的雙向鏈接列表,因此對你的回覆感到困惑。 – huggie