nsuserdefaults中的问题

时间:2011-03-05 21:50:00

标签: iphone ios nsuserdefaults

hii每一个我都有nsuser默认值的问题我会详细告诉scenerio

  1. 首先我在appDelegate中声明了nsmutable数组并将其设置为NSUserDefaults With For Key @“abc”

  2. 在FirstView Controller中我首先从NSUserDefaults获取数组并将其值保存在NSMutable Array中

  3. 当点击说abcButton我创建了一个字典并在其中添加了值

    [abcDictionar setObject:[[abcMutableArray objectAtIndex:indexPath.row] objectForKey:@"abc"]             forKey:@"abc"];
    
  4. 当我在NSDictionary中添加所有值时,我在NSMutable Array中添加NSDictionary 喜欢这个

    [abcMutableArray addObject:abcDictionary];
    
  5. 然后我保存NSUserDefaults 它在第4点给出了我的例外

  6. 当我在第一点添加nsdictionary时它一切正常,但数组中的数据是不明显的,当我要在tableview中显示它时会引发异常

  7. 如果有人有想法,那么请事先告知我...:)

1 个答案:

答案 0 :(得分:1)

NSUserDefaults不存储可变对象,只存储不可变对象。当你从中检索对象时,如果你想改变它们,你必须将它们转换/复制到可变对象中。

还要注意:

  

NSUserDefaults类提供了访问常用类型(如浮点数,双精度数,整数,布尔值和URL)的便捷方法。默认对象必须是属性列表,即(或集合的实例组合)的实例:NSDataNSStringNSNumberNSDateNSArrayNSDictionary。如果要存储任何其他类型的对象,通常应将其存档以创建NSData的实例。

哪个来自NSUserDefaults文档。