数据使用coreData存储。发现修改数据后,原来已经读取出来的数据也修改 ,怎么办具体问题如下
step1:
   从数据库读取数据得到NSArray *arr1
   arr1里面的内容是,@”zhangsan" @"13years old", @"lisi" @"12 years old"step2:
   修改数据库 lisi的年龄为@"18 years old"    
step3:
   发现之前的arr1的李四的年龄已经变味@"18 years old"我不希望每次的操作的数据 是这种跟随着实时变化的,怎么办
我也知道NSArray 保存的指示引用指针,修改的数据会反映在NSArray中
我想知道如何解决这个问题

解决方案 »

  1.   

    mutableCopy 出一个新的array再修改
      

  2.   

    NSMutableArray *arr = [[self.mangedObjectContext excuteFetchRequest:fetchRequst errr:&requestError]mutableCopy];
    mutableCopy只能复制Array的元素的指针,可是对于Array指针所指向的内容  依然是贡献的一块内存我的table是 Person{ name,age}按照你的方法  Person 的指针的确是copy了,可是name age 依然会跟着修改。
    没有更好的方法了吗? 搞不懂为什么coreData 要这样处理内存,为什么查训完后,要跟着数据库的变化修改。感觉很不方便啊
      

  3.   

    放弃使用CoreData了,不只是由于这个原因,感觉coreData不太灵活,还不如自己用SQLite3呢貌似CoreData也是用的SQLite3封装的对于习惯了sql语言的人,还是建议用SQLIte3