gpt4 book ai didi

ios - CoreData和MagicalRecord-仅在应用用户点击时,我应该如何正确处理更新数据?

转载 作者:行者123 更新时间:2023-12-01 19:04:00 25 4
gpt4 key购买 nike

给定以下界面:

@interface Country : NSManagedObject

@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSNumber * isAggressive;

@end

我有一个屏幕,用户可以在其中看到 Countries列表并切换 isAgressive标志。仅在用户点击时应用选项保存。他们还可以选择取消。

基于此,我使用以下代码在屏幕加载时加载所有国家/地区:
tempContext = [NSManagedObjectContext MR_context];
// Load our countries.
countries = [Country MR_findAllSortedBy: @"name"
ascending: YES
inContext: tempContext];

我这样做是在 tempContext而不是默认上下文中进行的,因为我不希望这些对象干扰任何其他对象。

取消时,我没有做任何特定的事情。只允许 tempContext离开范围。在申请时,我尝试执行以下操作:
// Save changes.
[MagicalRecord saveWithBlock: ^(NSManagedObjectContext * saveLocalContext)
{
[countries enumerateObjectsUsingBlock: ^(Country * country, NSUInteger countryIndex, BOOL * stop)
{
[country MR_inContext: saveLocalContext];
}];
} completion:^(BOOL success, NSError *error) {
NSLog(@"Completed: %@, %@.", success ? @"true" : @"false", error.localizedDescription);
//This is called when data is in the store, and is called on the main thread
}];

但是,这似乎没有进行任何更改。在调试中运行时,我收到以下日志消息:

[NSManagedObjectContext(MagicalSaves)MR_saveWithOptions:completion:](0x6000001dc020)**未命名**上下文中没有更改-不保存

完成:false,(空)。

并且我的更新未保存。如何正确处理更新的对象并执行保存?

最佳答案

问题是[MagicalRecord saveWithBlock...保存defaultContext而不是tempContext。

尝试改为调用[tempContext MR_saveToPersistentStoreWithCompletion ...之类的东西

关于ios - CoreData和MagicalRecord-仅在应用用户点击时,我应该如何正确处理更新数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20975223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com