gpt4 book ai didi

iphone - 数据模型中或 NSManagedObject 的自定义子类中定义的 transient 属性之间有区别吗?

转载 作者:行者123 更新时间:2023-12-03 20:01:16 25 4
gpt4 key购买 nike

我读到设置 transient 属性的值总是会导致将托管对象标记为“脏”。但是,我不明白的是:如果我创建 NSManagedObject 的子类并使用一些不需要持久化的额外属性,那么 Core Data 如何了解它们以及它如何将对象标记为脏对象我访问这些?

同样,它们没有在数据模型中定义,因此 Core Data 没有很好的暗示它们的存在。

或者 Core Data 是否使用某种内省(introspection)来分析我的自定义类并找出其中有哪些属性?

最佳答案

NSManagedObject
/* Distinguish between changes that should and should not dirty the object for any key unknown to Core Data. 10.5 & earlier default to NO. 10.6 and later default to YES. */
/* Similarly, transient attributes may be individually flagged as not dirtying the object by adding +(BOOL)contextShouldIgnoreChangesFor<key> where <key> is the property name. */
+ (BOOL)contextShouldIgnoreUnmodeledPropertyChanges NS_AVAILABLE(10_6,3_0);

transient 属性可以由撤消/重做管理器处理,额外属性则不能。

我发现核心数据“脏”制定规则有一些奇怪的行为:

在 iOS 5 上,在 -(void)didSave 中设置 transient 属性会使上下文变脏,但在 iOS 4.3 上不会。

how to make NSManagedObjectContext dirty (hasChanges = YES) Manually

我认为核心数据不会内省(introspection)您的 NSManagedObjects 的自定义子类

关于iphone - 数据模型中或 NSManagedObject 的自定义子类中定义的 transient 属性之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2996180/

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