gpt4 book ai didi

ios - RestKit+CoreData+MagicalRecord : how not to persist managed objects

转载 作者:行者123 更新时间:2023-11-29 01:46:34 25 4
gpt4 key购买 nike

我有一个网络服务,它返回一个对象列表(数百种产品),这些对象不需要持久化,只是临时显示。

用户可以选择其中的任何一项,这些项目必须保存到数据库中。

是否可以仅使用一个 NSManagedObject 实体来管理这种情况?

使用这个响应描述符:

- (id)productsResultResponseDescriptor {

RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[Product class]];
[mapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"products" toKeyPath:@"products" withMapping:[Product mapping]]];
...
return productsResultResponseDescriptor;
}

+ (RKObjectMapping *)mapping {
RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[self class]];
[mapping addAttributeMappingsFromDictionary:@{
@"name":@"name",
@"category":@"category"
}];
return mapping;
}

使用此配置,我在 RKMappingOperation 的 validateValue 方法中遇到错误的访问异常。

它可以工作还是我应该有两个不同的对象

Product : NSObject
ManagedProduct : NSManagedObject

并使用前者使用 RestKit 检索数据,使用后者使用 MagicalRecord 保存所选产品?

非常感谢,丹

最佳答案

把它们全部保存起来。当您的数据远远超过一个屏幕可以容纳的数量时,核心数据将使您更容易仅加载显示所需的数据。然后,只需向您的实体添加一个标志,该标志会在用户选择或取消选择产品时设置(并保存)。

请注意,您可以使用普通对象和托管对象来完成此操作,但这对您来说需要更多代码和复杂性,而且在内存和处理器使用方面效率较低。

关于ios - RestKit+CoreData+MagicalRecord : how not to persist managed objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31861088/

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