【问题标题】:Possible to set multiple parent entities for Core Data NSManagedObject?可以为 Core Data NSManagedObject 设置多个父实体吗?
【发布时间】:2013-07-23 02:30:17
【问题描述】:

我创建了以下示例 Core Data NSManagedObject 子类:

PBCommentableObject : NSManagedObject // to allow comments on object
@property (nonatomic, retain) NSSet *pBcomments; // unordered set of PBComment objects

PBComment : PBCommentableObject // to allow comments on a comment
@property (nonatomic, retain) PBCommentableObject *target;

PBList : PBCommentableObject // to allow comments on a list
@property (nonatomic, retain) NSOrderedSet *pBorderedItems; // ordered set of PBListableObject objects

PBString : PBListableObject // to allow strings to be added to lists
@property (nonatomic, retain) NSString *pBtext;

PBListableObject : ???? // I'd like both PBList and PBString to be PBListableObjects
@property (nonatomic, retain) PBList *pBlist;

我遇到的问题是我想要以下行为:

  • 可以保存有序字符串列表 (PBString) 或其他列表 (PBList) 的列表 (PBList)。
  • 允许列表 (PBList) 和其他 cmets (PBComment) 上的 cmets (PBComment) 但不允许 字符串 (PBString)

这可能吗?我目前正在尝试通过 Xcode 中的可视化界面构建 Core Data 模型;虽然我可以设想使用类别,但当我无法通过可视化编辑器定义关系时,如果 Xcode 不发出警告,我不知道该怎么做。

【问题讨论】:

  • 与 Objective-C 中的任何地方一样,您不能从多个父级继承。您当然可以引入您从多个实体引用的独立实体。但这并不完全是您的目标。

标签: objective-c xcode cocoa-touch core-data nsmanagedobject


【解决方案1】:

我认为您正在扩展继承的成语。所有这些“可列出的”和“可评论的”都会导致非常难以理解的复杂性。

可以简单地使用(布尔)属性和关系来对允许或禁止 cmets、列表或您拥有的东西进行验证。尝试仅考虑具体对象,例如“注释”或“字符串”,并使用属性集对列表进行建模。

【讨论】:

    猜你喜欢
    • 2012-10-11
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多