Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Core data 从NSMangeObject子类类对象获取实体名称_Core Data_Nsmanagedobject - Fatal编程技术网

Core data 从NSMangeObject子类类对象获取实体名称

Core data 从NSMangeObject子类类对象获取实体名称,core-data,nsmanagedobject,Core Data,Nsmanagedobject,从NSManagedObjectSubclass的类对象中获取实体名称是否存在障碍?我知道这可以通过一个子类的实例很容易地确定,但我想问问类本身。我可以编写一个类函数,但我更愿意内省地这样做。如果还没有,请查看mogenerator。 它为核心数据添加了许多缺失的功能。特别是它使您不必重新生成实体类 您可以迭代上下文中实体的键值: [managedObjectContext registeredObjects] 您现在可以通过执行NSManagedObject.entity().name来完成

从NSManagedObjectSubclass的类对象中获取实体名称是否存在障碍?我知道这可以通过一个子类的实例很容易地确定,但我想问问类本身。我可以编写一个类函数,但我更愿意内省地这样做。

如果还没有,请查看mogenerator。

它为核心数据添加了许多缺失的功能。特别是它使您不必重新生成实体类

您可以迭代上下文中实体的键值:


[managedObjectContext registeredObjects]

您现在可以通过执行
NSManagedObject.entity().name
来完成,其中
NSManagedObject()
是您的子类。

没有内置方法,但这个答案提供了一个可能的解决方案:谢谢。我的类名与EntityName不同,因此我没有使用这种方法:目前,我只是从我所有的类都采用的类函数中传递常量字符串。rob mayoff的答案中的
entityName
class方法正好适用于这种情况:它从核心数据模型中的实体描述中检索实体名称;我没有忽略他在高层的所作所为。谢谢如果您对答案满意,我们可以将此作为的副本关闭。它实际上是可选的,不是可靠的来源。我曾多次在NSManagedObject的子类上调用.entity().name时返回nil,而该子类应该有一个实体。我不建议依赖它。它返回可选值,因此在展开之前,您始终需要检查提供的值。你可以提出其他方法来获得这个名字。@Vasily mark是对的。出于某种奇怪的原因,
.name
返回nil。如果要在展开前进行检查,然后传递备选方案,那么最好首先指定备选方案。