类别中的 NSManagedObject 子类 属性
NSManagedObject subclass property in category
NSManagedObject 子类 属性 在其类别文件中创建,由于类别只能有方法,因此非常有线。详情如下:
(1).我在 .xcdatamodeld 文件中创建了一个名为 BibleAudio 的实体,具有如下几个属性。
(2)。 xcode 生成的 objective c 文件是 "BibleAudio + CoreDataProperties.h"、"BibleAudio + CoreDataProperties.m" 和 "BibleAudio.h"、"BibleAudio.m",如下所示:
(3)。在 "BibleAudio + CoreDataProperties.h" 中,BibleAudio 的属性在此处声明为 属性(见下文);而在 "BibleAudio.h" 中,它是空的。据我所知,"BibleAudio + CoreDataProperties.h"是一个类别文件,只能在这里声明方法。因此,我认为正确的方法是在 "BibleAudio.h" 中声明 属性,如果你想为这个 NSManagedObject 子类添加方法,你应该使用一个类别来添加该方法。
BibleAudio + CoreDataProperties.h
BibleAudio.h
有谁知道我的理解对不对?或者如果我错了,那背后的逻辑是什么?
在以前的 Xcode 版本中, 只为每个版本创建了一个 class
核心数据实体,例如BibleAudio.h/.m
中的 class "BibleAudio"。这些文件每次都被覆盖
重新创建了托管对象 subclasses。因此,要添加
你自己的核心数据功能 class,你必须定义
类别(在单独的文件中)在 class.
最大的缺点
是您可以在 class 类别中添加 methods,但不能
实例变量。所以你不能添加一个简单的 属性
(由实例变量支持)。一种可能的解决方法是
在实体中定义一个 transient 属性,但这也
缺点。
现在 Xcode 创建一个 class "BibleAudio" (在 BibleAudio.h/.m
中),它基本上是空的,
和类别 "BibleAudio (CoreDataProperties)"
BibleAudio + CoreDataProperties.h/.m
类别文件包含所有核心数据属性,并且是
当您重新创建托管对象 subclasses.
时被覆盖
class 个文件 BibleAudio.h/.m
只创建一次,永远不会被覆盖。您可以在那里添加功能:像以前一样的方法,还有自定义属性和实例变量。因为它是 class
而不是类别,旧的限制不再适用。
NSManagedObject 子类 属性 在其类别文件中创建,由于类别只能有方法,因此非常有线。详情如下:
(1).我在 .xcdatamodeld 文件中创建了一个名为 BibleAudio 的实体,具有如下几个属性。
(2)。 xcode 生成的 objective c 文件是 "BibleAudio + CoreDataProperties.h"、"BibleAudio + CoreDataProperties.m" 和 "BibleAudio.h"、"BibleAudio.m",如下所示:
(3)。在 "BibleAudio + CoreDataProperties.h" 中,BibleAudio 的属性在此处声明为 属性(见下文);而在 "BibleAudio.h" 中,它是空的。据我所知,"BibleAudio + CoreDataProperties.h"是一个类别文件,只能在这里声明方法。因此,我认为正确的方法是在 "BibleAudio.h" 中声明 属性,如果你想为这个 NSManagedObject 子类添加方法,你应该使用一个类别来添加该方法。
BibleAudio + CoreDataProperties.h
BibleAudio.h
有谁知道我的理解对不对?或者如果我错了,那背后的逻辑是什么?
在以前的 Xcode 版本中, 只为每个版本创建了一个 class
核心数据实体,例如BibleAudio.h/.m
中的 class "BibleAudio"。这些文件每次都被覆盖
重新创建了托管对象 subclasses。因此,要添加
你自己的核心数据功能 class,你必须定义
类别(在单独的文件中)在 class.
最大的缺点 是您可以在 class 类别中添加 methods,但不能 实例变量。所以你不能添加一个简单的 属性 (由实例变量支持)。一种可能的解决方法是 在实体中定义一个 transient 属性,但这也 缺点。
现在 Xcode 创建一个 class "BibleAudio" (在 BibleAudio.h/.m
中),它基本上是空的,
和类别 "BibleAudio (CoreDataProperties)"
BibleAudio + CoreDataProperties.h/.m
类别文件包含所有核心数据属性,并且是
当您重新创建托管对象 subclasses.
class 个文件 BibleAudio.h/.m
只创建一次,永远不会被覆盖。您可以在那里添加功能:像以前一样的方法,还有自定义属性和实例变量。因为它是 class
而不是类别,旧的限制不再适用。