【问题标题】:Core Data - Relations queries核心数据 - 关系查询
【发布时间】:2014-03-02 19:24:52
【问题描述】:

在核心数据中,

我想使用关系。但我心里有个疑问。道歉,但我没有在各种网站和博客上找到明确的答案。其他事情,如添加、获取、删除查询对我来说很清楚。但是我在核心数据方面还有一些问题还不清楚。

我制作了两个实体:

  • Photographer [属性:namecamera]
  • Photo [属性:zonerphotographerName]。

1) 我已将它们与关系联系起来。因此,如果我将这两个实体与关系联系起来,那么我应该从 Photo 中删除 photographerName 吗?

2) 由于我已将这两个实体与关系联系起来,那么如何将摄影师姓名与照片实体一起使用?

3) 如果我将它与关系一起使用,如何在其中添加值? [现在它在 sqlite 浏览器的关系中向我显示 Null]

【问题讨论】:

    标签: ios iphone database core-data iphonecoredatarecipes


    【解决方案1】:

    因此,如果我将这两个实体与关系联系起来,那么我应该从 Photo 中删除该 PhotographerName 吗?

    一般来说,是的,它是多余的。

    如何将摄影师姓名与照片实体一起使用?

    self.photographer.name
    

    (假设您在Photo 类中并且关系名称为photographer

    如果我将它与关系一起使用,我如何在其中添加值

    我猜你的意思是我如何设置关系值。创建一个实例(或查找现有实例)或每个实体,然后:

    photo.photographer = photographer;
    

    注意事项:

    1. 确保关系具有逆向
    2. 将关系命名为 photographerphotos(一对多)
    3. 尝试设置photophotographer,或使用Photographer 类中自动生成的关系方法添加照片

    【讨论】:

    • 您需要创建2个关系,每个方向1个,然后将它们设置为彼此相反
    • 所以在这两个地方我都需要设置非逆?在关系的反列下
    • 当你将一个设置为另一个的倒数时,两个都将设置为彼此的倒数
    • 我在照片类中找到了这个关系对象 .. @property (nonatomic, retain) 摄影师 *relationshipInv; ..所以使用relationshipInv.name 我可以为特定图像设置摄影师姓名.. 对吗?
    • 是的,但是像我在答案中建议的那样更清楚地命名您的关系,并且您通常不会从照片中设置摄影师姓名(有点奇怪)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    相关资源
    最近更新 更多