【发布时间】:2015-01-22 19:42:00
【问题描述】:
我在核心数据数据模型中有两个实体。它们之间是一对多的关系。当我导航到 Editor --> Create NSManagedObject Subclass... 时,我的模型已生成,但在很多方面我没有得到像 - (void)addPhotosObject:(NSManagedObject *)value; 这样的强类型方法签名关系。
根据我所读到的,至少在 Xcode 5 中,这是因为关系一侧的类是首先创建的,所以关系的多侧的类还不存在。我看到的建议是再次简单地 Create NSManagedObject Subclass... 并且该方法应该生成具有强类型类的方法,但方法签名不会更改为强类型。
获取强类型方法签名有技巧吗?
【问题讨论】:
-
究竟什么是强类型方法签名?
-
@Mundi 与其声明一个采用泛型类
NSManagedObject的方法,不如采用我的特定类类型。在这个例子中(来自 CS193P),我有一个Photographer类,它有一个NSSet和Photo。理想情况下,方法签名看起来像- (void)addPhotosObject:(Photo *)value;,而不是您在问题中看到的使用NSManagedObject的签名。有意义吗? -
好的,我明白了。 “强类型”实际上意味着不同的东西。您的意思通常称为
NSManagedObject子类。 -
我意识到强类型通常在引用一种语言时使用,并且 Photo 确实是
NSManagedObject的子类,但我认为这是解释我的问题的好方法。诚然,我发现这个问题难以沟通。您对如何写这个问题@Mundi 有什么建议吗?也许我可以更新这个问题,让它更清楚一点,同时从你的方法中学到一些东西。干杯 -
不使用“强类型”会更清楚。