2012-08-02 73 views
1

我爲該類創建了一個自定義類&。我想將該對象存儲到NSUserDefault中。將對象設置爲userfaults時出現錯誤。我該如何設置?如何在用戶默認值中存儲自定義對象 - IOS

+0

此鏈接將幫助你.. http://mobile.tutsplus.com/tutorials/iphone/nsuserdefaults_iphone-sdk/ – 2013-05-06 18:27:49

回答

3

你必須在你的類中實現NSCoding協議&實現協議方法。 這只是序列化。在存儲對象時,您應該序列化(NSKeyedArchiver)類&與檢索相同,您應該反序列化(NSKeyedUnArchiver)該對象。

方法是

  • (無效)encodeWithCoder:(NSCoder *)aCoder;
  • (id)initWithCoder:(NSCoder *)aDecoder;
+0

一個更詳細的例子是幫助。我已經實現了委託方法,但不知道要放入哪些方法。我有一個非常簡單的對象與幾個NSString屬性。 – 2012-08-27 20:55:35

0

As the documentation states

默認對象必須是一個屬性列表,即,(對集合或 的實例的組合)的一個實例:NSData的,的NSString, 的NSNumber,NSDate的, NSArray或NSDictionary。如果要存儲任何其他類型的對象,則通常應將其存檔以創建一個NSData實例。

創建NSData實例的最簡單方法是使用NSKeyedArchiver

0

最可能的原因是您的結構中有難以存檔的東西。

下面是從類NSUserDefaults的參考報價,你可能會發現有用:

的類NSUserDefaults的提供用於訪問常見類型,如漂浮的簡便方法,雙打,整數,布爾和URL。一個默認對象必須是一個屬性列表,也就是一個實例(或集合的實例組合):NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary。如果你想存儲任何其他類型的對象,你通常應該將其存檔以創建一個NSData實例。有關更多詳情,請參閱首選項和設置編程指南。

編輯。 斯蒂芬毆打拳擊,給男人一個獎:)

相關問題