将对象类型声明为 NSManagedObject 或类名

Posted

技术标签:

【中文标题】将对象类型声明为 NSManagedObject 或类名【英文标题】:Declaring object type as NSManagedObject or class name 【发布时间】:2010-04-17 02:50:13 【问题描述】:

在 Core Data 中,如果我有一个 Person 实体,两者之间有什么区别:

NSManagedObject *aPerson = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:[self managedObjectContext]];

Person *aPerson = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:[self managedObjectContext]];

aPerson 应该是 Person 类型还是 NSManagedObject 类型?有区别吗?

【问题讨论】:

【参考方案1】:

你应该将它声明为一个Person 类。这样编译器就知道确切的类类型。

【讨论】:

以上是关于将对象类型声明为 NSManagedObject 或类名的主要内容,如果未能解决你的问题,请参考以下文章

将 NSManagedObject 转换为子类类型的问题

NSManagedObject - 如何获取属性的类型

将 NSManagedObject 数组与另一个“对象”类型 Swift 2 的数组进行比较

无法将“NSManagedObject”类型的返回表达式转换为“字符串”类型?

无法将 String 类型的值转换为预期的参数类型 NSManagedObject

消失的 NSManagedObject