Xcode 4 - 使用关系添加对象并将其关联到实体

问题描述 投票:0回答:1

我已经学习如何在 xcode 中使用 Core Data 几个星期了,但一直困惑于如何让这些关系发挥作用。

在我的代码中我有 2 个实体。 “House”实体和“City”实体。一栋房屋只能属于 1 个城市,但一个城市可以有许多与其关联的房屋。所以我在房子和城市实体之间建立了一对多的关系。

以下代码片段位于城市视图控制器中,它只是一个表格视图,显示所有可供选择的可用城市。该列表已预先填充在城市实体中。现在,当我选择一行时,我尝试执行以下代码将房屋与所选城市相关联,但结果始终为零。

referingObject 是我正在创建的房屋对象 城市是房屋与城市实体的关系

如有任何帮助,我们将不胜感激

NSManagedObject *selectedCity =
    [self.fetchedResultsController objectAtIndexPath:indexPath];

[self.referringObject setValue:[selectedCity valueForKey:@"cityname"] 
    forKeyPath:@"cities.cityname"];
core-data xcode4
1个回答
1
投票

您想要将城市对象与房屋对象关联起来。您不需要更改其中的城市名称值。这样,每个城市的表中就只有一个条目。所以你想做的是:

 NSManagedObject *selectedCity = [self.fetchedResultsController objectAtIndexPath:indexPath]; 
[self.referringObject setValue:selectedCity forKeyPath:@"city"];

这将为您建立双方的关系。然后,您可以使用 houseObj.city.cityname 从房屋对象访问城市的名称,或者使用 city.houses 获取城市中的房屋列表(假设您命名了关系房屋)。

© www.soinside.com 2019 - 2024. All rights reserved.