2010-04-08 63 views
0

我正在使用NSObject的Objective C類,它是NSObject的子類。 該課程無法修改。我有一個這個類的實例,我希望寫入一個可以檢索並稍後恢復的文件。該對象不符合NSCoding。[iPhone] Objective C,不符合NSCoding的對象。如何將它們寫入文件

綜上所述,我需要一個類的實例保存到以後可以檢索的文件,而無需使用任何的NSCoding方法,如NSKeyedArchiving encodeWithCoder ...

使用它們返回這個.. 。 NSInvalidArgumentException ... encodeWithCoder:] 無法識別的選擇發送到實例...

有沒有我可以存儲該對象爲以後使用 任何其他方式感謝您

PS類是的UIEvent

+2

你能向我們解釋爲什麼你想存檔一個事件嗎? UIEvent不符合NSCoding的原因是它通常不被認爲是需要持久化的數據。 – NSResponder 2010-04-08 17:00:48

+0

我與NSResponder。聽起來就像你正在嘗試做一些更好的處理方式,而不會涉及歸檔UIEvents。 – Jaanus 2010-04-08 18:47:21

回答

2

你可以繼承這個類並在子類中實現NSCoding協議嗎?

+0

謝謝,但該類有許多不支持NSCoding的內部成員,並且該類不能被子類化 – 123hal321 2010-04-08 16:22:59

0

根據對象作爲成員的含義,可以創建一個字典,並將每個成員的值設置爲字典中的鍵,然後將其寫入文件。

但是,我不明白爲什麼你不能爲子對象和實現NSCoding協議,因爲Jaanus建議?

+0

成員不支持NSCoding並且我不能繼承這個類,我想知道是否存在一些相對較低級別的C函數從內存中複製它或類似的東西?我無法訪問一些對象屬性,因爲它們是私人的 – 123hal321 2010-04-08 16:27:44

+0

反正有沒有NSCoding這麼做 – 123hal321 2010-04-08 16:47:41

+0

**爲什麼**你不能繼承這個類嗎?什麼是預防呢? – Jasarien 2010-04-08 23:22:47

相關問題