您当前的位置: 首页 > 

CoreData数据验证失败仍然插入context的解决(一)

发布时间:2017-01-01 16:17:39 ,浏览量:0

CoreData对于data manager对象提供了数据验证的机制,只有验证成功才可以插入底层的持久存储,参考如下代码:

if let ks = NSManagedObject(entity: entity, insertInto: containerVC.managedObjectContext) as? KsMain{ //fill data to ks object //插入数据库 insert(ks)
}

func insert(_ ks:KsMain){ do{ try ks.validateForInsert()
            saveContext()
        }catch{
            print(error.localizedDescription)
        }
    }

我们当然在KsMain类中写了验证的方法,测试可知当ks未能通过验证时的确无法插入底层的数据库,但是和context绑定的TableView刷新时仍然出现了该ks对象!

这是我们不希望看到的!我们希望当底层的数据验证失败时context也不要插入任何数据.这可以通过两种方法来解决.

1.在创建ks对象时不绑定context,而在实际插入时再指定context:


	
关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    107766博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0451s