在我的iOS应用中,我使用Coredata
来存储数据。在我的应用程序中,我有一个HomeVC,这个HomeVC包含带有复选标记按钮的列表食物。为此,我创建了具有名称和选定属性的“Food”实体。为了在HomeVC中显示食物列表,我从数据库中获取数据并存储到本地数组中,并将此数组绑定到tableView。当用户单击复选按钮时,我已更新此本地数组中的所选属性。一切都很好。
我在更新本地数组中的所选属性时遇到问题,此属性也会更改为数据库。
修改
NSEntityDescription* entityDesc = [NSEntityDescription entityForName:entityName inManagedObjectContext:self.managedObjectContext];
NSFetchRequest* fetchReq = [[NSFetchRequest alloc]init];
[fetchReq setEntity:entityDesc];
// Fetching rows from database
NSArray* results = [self.managedObjectContext executeFetchRequest:fetchReq error:nil];
//Assigning results to local array
_localArray = [NSMutableArray arrayWithArray:results];
有人知道如何解决这个问题吗?
答案 0 :(得分:0)
您希望更改数据,但不存储更改,而是稍后将其丢弃?一个奇怪的要求,但当然可以做到。
您需要创建一个新的托管对象上下文,该上下文可以将您应用的主要上下文作为父上下文。然后,您可以选择:
创建子上下文:
let childContext =
NSManagedObjectContext(concurrencyType:.MainQueueConcurrencyType)
childContext.parentContext = mainContext