请问    NSUerDefault中可以直接存储NSMutableArray吗?NSMutableArray中放了5个NSString*类型的数据。如果可以,那怎么读和存该NSMutableArray呢?

解决方案 »

  1.   


     NSArray* arr = [[NSArray alloc] initWithObjects:@"111", @"222",@"22223333",nil];    
      NSMutableArray* marr = [[NSMutableArray alloc] initWithArray:arr];    NSUserDefaults *mydefault = [NSUserDefaults standardUserDefaults];
        [mydefault setObject:arr forKey:@"test1"];
        [mydefault setObject:marr forKey:@"test2"];
        [mydefault synchronize];  
        
        NSArray* getarr=[mydefault objectForKey:@"test1"];
        NSArray* getmarr=[mydefault objectForKey:@"test2"];
      

  2.   

    当然可以存储。NSUserDefaults 本质上同.plist文件。它其实是一个字典(键值对)对象。///////NSUserDefaults 的存储,因它是一块固定的区域,在整个应用程序期间只有一个实例
    NSUserDefaults *_default = [NSUserDefaults standardUserDefaults];  //////NSUserDefaults 单例
    [_default setObject:yourArray  forKey:@"array"];  ///////存储yourArray集合,它对应的访问key是@“array”
    [_default synchronize];  /////同步数据/////////NSUserDefaults 的读取
    NSMutableArray *myArray = _default[@"array"]  as NSMutableArray ;
      

  3.   


    我总结一下,其实,最关键的就是:  NSMutableArray ,获取时,不能以NSMutableArray的方式取出来,只能以NSArray* 的方式取出来,取出来后再转化为NSMutableArray ,对吧?
      

  4.   


    我总结一下,其实,最关键的就是:  NSMutableArray ,获取时,不能以NSMutableArray的方式取出来,只能以NSArray* 的方式取出来,取出来后再转化为NSMutableArray ,对吧?
    正确