我有两个NSManagedObject:
数据输入
普罗旺斯
它们之间存在关系:DataEntered必须具有一个Provence,而Provence可能具有一个/多个DataEntered。
一切运行良好,但是使用工具和分配时,每当我将Provence设置为DataEntered时,新的_CDSnapshot_Provence_就会出现在#Living中:
Provence * provence = [[self fetchedResultsController] objectAtIndexPath:indexPath];
[self.dataEntered setAddress_provence:provence];
DataEntered中Provence的设置程序由CoreData管理,没有自定义设置。
当我保存DataEntered时,将正确保存。是什么会导致创建多个活动_CDSnapshot_Provence_?
谢谢!
@class Provence;
@interface DataEntered : NSManagedObject
@property (nonatomic, retain) NSString * name;
@property (nonatomic, strong) Provence *address_provence;
@end
@class Provence;
@interface DataEntered : NSManagedObject
@property (nonatomic, retain) NSString * name;
@property (nonatomic, strong) Provence *address_provence;
@end
@class DataEntered;
@interface Provence : NSManagedObject
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSSet *dataEnteredAddress_Provence;
@end
@interface Provence (CoreDataGeneratedAccessors)
- (void)addDataEnteredAddress_ProvenceObject:(DataEntered *)value;
- (void)removeDataEnteredAddress_ProvenceObject:(DataEntered *)value;
- (void)addDataEnteredAddress_Provence:(NSSet *)values;
- (void)removeDataEnteredAddress_Provence:(NSSet *)values;
@end
#import "Provence.h"
#import "DataEntered.h"
@implementation Provence
@dynamic name;
@dynamic dataEnteredAddress_Provence;
@end
最佳答案
我看到了完全一样的东西,我相信这是可以预料的。
请参阅Apple文档中的“冲突检测和乐观锁定”部分,网址为:
https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdChangeManagement.html
“当核心数据从持久性存储中获取对象时,它将获取其状态的快照。快照是对象的持久性属性的字典,通常是其所有属性以及与其具有一对一关系的任何对象的全局ID关系。”
在同一链接上也有一部分对阅读很有用-快照管理
我遇到的问题是,在我对所有托管对象进行故障处理或进行了上下文重置之后,让Core Data释放其内存分配。
我刚刚发布了一篇有关此主题和相关主题的博客文章:
内存分配的核心数据问题-http://finalize.com/2013/01/04/core-data-issues-with-memory-allocation/
希望这可以帮助。
史考特
关于ios - NSManagedObject的二传手创建_CDSnapshot_Provence_,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12979085/