我無法檢索包含自定義對象的已保存NSMutableArray。該應用程序崩潰,控制檯報告http://pastie.org/1226822。這是我的對象.h文件http://pastie.org/1226823。這是我的對象.m文件http://pastie.org/1226826。以下是我如何保存我的數據http://pastie.org/1226830。以下是我如何檢索我的數據http://pastie.org/1226831。提前致謝。使用NSKeyedArchiver將NSMutableArray保存爲NSUserDefaults
回答
固定。我使用Brad Larson的代碼Storing custom objects in an NSMutableArray in NSUserDefaults。我認爲如何將數據添加到我的數組中有問題,但現在可以使用。
NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
NSData *dataRepresentingSavedArray = [currentDefaults objectForKey:@"savedArray"];
if (dataRepresentingSavedArray != nil)
{
NSArray *oldSavedArray = [NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingSavedArray];
if (oldSavedArray != nil)
objectArray = [[NSMutableArray alloc] initWithArray:oldSavedArray];
else
objectArray = [[NSMutableArray alloc] init];
}
你也可以寫objectArray = [oldSavedArray mutableCopy] – benzado 2010-10-18 06:12:03
控制檯告訴你整個問題。您Assignment
對象未實現 方法initWithCoder:
'NSInvalidArgumentException', reason: '-[Assignment initWithCoder:]: unrecognized selector sent to instance 0x5f04090'
的KeyArchiver將調用你的類初始化基於解碼數據的新對象。您應該使用[decoder objectForKey:YOUR_KEY];
我確實實施了它。 [解碼器objectForKey:YOUR_KEY];不可用。 – enbr 2010-10-17 15:33:29
問題不在於NSMutableArray或您如何調用NSKeyedArchiver。問題是數組內的對象本身不可存檔。
您需要您的對象來實現NSCoding協議。關於如何做到這一點,有大量的文檔,但基本上你只需添加一個initWithCoder:
方法來創建對象的檔案,和encodeWithCoder:
方法將對象寫入檔案。小菜一碟!
我實現了它,但它仍然無法正常工作。 – enbr 2010-10-17 15:43:01
- 1. 保存NSMutableArray爲NSUserDefaults
- 2. 用NSMutableArray將NSDictionary保存爲NSUserDefaults的值
- 3. 用UIImages保存NSMutableArray到NSUserDefaults
- 4. 保存NSMutableArray的NSUserDefaults的用
- 5. 將NSArray保存爲NSUserDefaults並將其保存在NSMutableArray中
- 6. 保存的NSMutableArray NSUserDefaults的到
- 7. 在NSUserDefaults中保存NSMutableArray
- 8. 在NSUserDefaults中保存NSMutableArray
- 9. 不NSUserDefaults的使用的NSKeyedArchiver
- 10. 將NSMutableDictionary保存爲NSUserDefaults
- 11. 將UIImage保存爲NSUserDefaults
- 12. 無法在NSUserDefaults中保存NSMutableArray
- 13. 是否可以使用NSKeyedArchiver將NSMutableArray保存到核心數據中?
- 14. 同步NSKeyedArchiver或NSUserDefaults
- 15. 在NSUserDefaults處使用url保存NSMutableArray的問題
- 16. 保存的NSMutableArray NSUserDefaults的使用不工作
- 17. 將NSMutableArray保存到NSUserDefaults的最佳方法是什麼?
- 18. 使用保存NSUserDefaults的
- 19. 使用NSUserDefaults保存數據
- 20. iOS:爲用戶保存nsmutablearray
- 21. 使用NSKeyedArchiver保存關聯數組
- 22. 如何使用NSKeyedArchiver保存數據?
- 23. 保存NSMutableArray爲plist?
- 24. 用NSUserDefaults保存UITableViewController
- 25. 將AnyObject保存到NSUserdefaults
- 26. 將數組保存到NSUserDefaults
- 27. 存儲在NSUserDefaults中的NSMutableArray不會保存數據
- 28. NSMutableArray中的NSUserDefaults
- 29. 保存轉換爲NSUserDefaults?
- 30. 保存設置爲NSUserDefaults
剛剛試過,對我來說工作正常。沒有崩潰。 – 2010-10-17 02:32:14