Core data 从NSMangeObject子类类对象获取实体名称
从NSManagedObjectSubclass的类对象中获取实体名称是否存在障碍?我知道这可以通过一个子类的实例很容易地确定,但我想问问类本身。我可以编写一个类函数,但我更愿意内省地这样做。如果还没有,请查看mogenerator。 它为核心数据添加了许多缺失的功能。特别是它使您不必重新生成实体类 您可以迭代上下文中实体的键值:Core data 从NSMangeObject子类类对象获取实体名称,core-data,nsmanagedobject,Core Data,Nsmanagedobject,从NSManagedObjectSubclass的类对象中获取实体名称是否存在障碍?我知道这可以通过一个子类的实例很容易地确定,但我想问问类本身。我可以编写一个类函数,但我更愿意内省地这样做。如果还没有,请查看mogenerator。 它为核心数据添加了许多缺失的功能。特别是它使您不必重新生成实体类 您可以迭代上下文中实体的键值: [managedObjectContext registeredObjects] 您现在可以通过执行NSManagedObject.entity().name来完成
[managedObjectContext registeredObjects] 您现在可以通过执行
NSManagedObject.entity().name
来完成,其中NSManagedObject()
是您的子类。没有内置方法,但这个答案提供了一个可能的解决方案:谢谢。我的类名与EntityName不同,因此我没有使用这种方法:目前,我只是从我所有的类都采用的类函数中传递常量字符串。rob mayoff的答案中的entityName
class方法正好适用于这种情况:它从核心数据模型中的实体描述中检索实体名称;我没有忽略他在高层的所作所为。谢谢如果您对答案满意,我们可以将此作为的副本关闭。它实际上是可选的,不是可靠的来源。我曾多次在NSManagedObject的子类上调用.entity().name时返回nil,而该子类应该有一个实体。我不建议依赖它。它返回可选值,因此在展开之前,您始终需要检查提供的值。你可以提出其他方法来获得这个名字。@Vasily mark是对的。出于某种奇怪的原因,.name
返回nil。如果要在展开前进行检查,然后传递备选方案,那么最好首先指定备选方案。