CoreData将数据一次又一次地添加到数据库中

谢谢

我已经在APPDelegate中实现了核心数据,并创建了一个新类,并从JSON和NSURLConnection获取数据didfinishloading我正在使用快速枚举将数据存储到核心数据中,这很好用并在nsfetch请求的表视图中显示,但是问题是每次我启动应用程序,它一次又一次地将数据存储到sqlite文件中,为什么会发生以下方法

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    self.customCellClass = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    if (self.customCellClass == nil)
    {
        self.customCellClass = [[CellCustom alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
    }
    self.customCellClass.nameLabel.text = [_myArray[indexPath.row] name];// label
    self.customCellClass.cityLabel.text = [_myArray[indexPath.row] regions]; // label
    self.customCellClass.detailLabel.text = [_myArray[indexPath.row] summary]; //label
 return self.customCellClass;

}


-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    arrayData = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
    NSManagedObjectContext *context = [appDelegate managedObjectContext];
    appDelegate = [[UIApplication sharedApplication ]delegate];
    context = [appDelegate managedObjectContext];
    NSString * name ;
    NSString * summary;
    NSString * region;


    for (NSDictionary * dic in arrayData) {
        name = [dic objectForKey:@"name"];
        summary = [dic objectForKey:@"summary"];
        region = [dic objectForKey:@"region"];

        Discount * d = [NSEntityDescription insertNewObjectForEntityForName:@"Discount" inManagedObjectContext:context];
        d.name = name;
        d.summary = summary;
        d.regions = region;   
    }
    NSError *error;
    if (![context save:&error]) {
        NSLog(@"Getting error while saving data");
    }
    else{
        NSLog(@"Saved");
    }
    [listTableView reloadData];
} 

appdelegate方法很常见,因为每个方法都给我一个解决方案,请

弗拉迪斯拉夫·祖布科夫

添加此观察者,并检查是否在第一次启动时调用它。

 NSManagedObjectContext *context = [appDelegate managedObjectContext];
[[NSNotificationCenter defaultCenter] addObserver:self
                                  selector:@selector(dataDidSave)
                              name:NSManagedObjectContextDidSaveNotification
                                  object:context];
-(void)dataDidSave
{
self.myArray = // get data from data base
[listTableView reloadData];
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么数据在 Firebase 数据库的 Loop 中一次又一次地添加?

如何减少一次又一次的firebase数据库查询?

我的 RecyclerView 一次又一次地从房间数据库中获取数据

如何使用ArrayList <Integer>中的不同元素一次又一次地将ArrayList <Integer>添加到ArrayList <ArrayList <Integer >>

避免一次又一次地从JSON获取数据

Flutter:为什么setState((){})一次又一次地设置数据

更新状态一次又一次地获取数据后

使用foreach()之后,一次又一次重复相同的数据库表值

Firebase 数据库一次又一次地更新子值而不满足条件 true

无法一次又一次地在LinkedList中插入相同的元素

我的数据在表视图中一次又一次地重新加载?

Recycler Adapter 在点击项目后一次又一次地读取数据(ANDROID KOTLIN)

jQuery在突出显示的段落中,它一次又一次地添加相同的文本

如何在不一次又一次键入键值的情况下将数据存储在 firebase 中?

房间迁移Alter Table不添加新列,迁移一次又一次地被调用

一次又一次地向多维数组添加“简单”数组元素

需要在Godaddy服务器上一次又一次地添加ssh

通知被一次又一次地触发

在 Fortran 95 中一次又一次地读取文件的内容

如何一次又一次地调用URL

Azure 容器实例一次又一次地失败

一次又一次地馈送avconv

内核一次又一次地死亡

一次又一次地编辑python脚本文件

Square 一次又一次地改变速度

如何一次又一次地重复(递归)查询?

要重用jQuery函数,使函数一次又一次地使用

如何一次又一次地选择读/写?

init方法在servlet中一次又一次地调用