我正在开发一个项目,该项目提供了一种收集特定地址房间数据的方法。我在房间和地址表之间的数据模型中建立了关系。该项目目前提供UITableView
个地址,用户可以通过地址向下钻取到另一个UItableView
查看房间。
这是我无能为力的地方。如果没有房间,则会显示自定义UIView
以输入房间数据。用户在每个数据点的UIView
中输入数据,然后按保存。保存按钮的IBAction
当前设置相关表中每个键的值。我假设它在这里,我需要建立一个地址和它的房间之间的关系,但我找不到正确的方法来做到这一点。我在setValue方法中尝试了NSSet setWithObject:
[newRoom setValue:[NSSet setWithObject:_address] roomName.text forKey:@"roomName"];
但Xcode
要我在roomName
和文字之间插入一个冒号。
最终,我希望用户能够选择地址并管理该地址的房间数据,但我不确定如何建立地址与房间之间的关系。
任何帮助将不胜感激。
答案 0 :(得分:0)
听起来Address
到Room
关系是一对多关系:每个Address
可以有多个Rooms
,而每个Room
只涉及一个Address
。因此Address
实体应该有rooms
属性来表示关系,而Room
实体也应该具有address
属性。 (如果您对这些属性使用了不同的名称,请在必要时进行修改。)
当用户在地址的表视图中选择一行时,您将确定相应的Address
对象。我们称之为chosenAddress
。然后,您的第二个表视图应仅显示与Room
相关的chosenAddress
个对象。当您创建新的Room
对象时,我们将其称为newRoom
,您可以与chosenAddress
建立关系:
[newRoom setValue:chosenAddress forKey:@"address"];
或者,如果您为Address
和Room
创建了NSManagedObject子类:
newRoom.address = chosenAddress;
请注意,CoreData会自动设置反比关系,将newRoom
添加到chosenAddress.rooms
给出的集合中。