核心数据管理的 var 似乎被初始化而不是 nil

Core data managed var seems to be initialised instead of nil

我有一个核心数据 class 这个变量:

@NSManaged var tags: NSSet?

问题是当从数据存储中获取 class 时,tags 变量不是 nil,而是用一个空的 NSSet 对象初始化。

这种行为正常吗?

我以为会是零

更新与提问: 我检查了核心数据属性的行为,提取后它是零。

有没有可能对于NSSet/NSOrderedSet的关系,核心数据不使用nil,而是初始化了一个空集?

核心数据使用断层:

documentation

基本上这里发生的是:

A managed object fault is an instance of the appropriate class, but its persistent variables are not yet initialized.

A relationship fault is a subclass of the collection class that represents the relationship.

所以你可能有一个集合的实例,但在你访问它之前你不会知道持久值是什么。

希望对您有所帮助