3

我正在开发的应用程序由两个类组成,每个类都属于一个表格视图控制器(您可以说该应用程序类似于一个主从应用程序)。在第一个类中,特别是在 prepareForSegue 方法中,我传递了一个 NSMangedObject 以便下一个视图可以向托管对象的属性添加一些内容。

我在第一堂课中输入了以下内容:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue destinationViewController] isKindOfClass:[SSCViewController class]]) {
        NSManagedObject *selectedObject = [objects objectAtIndex:[[self.tableView indexPathForSelectedRow] row]];
        SSCViewController *destinationViewController = segue.destinationViewController;
        destinationViewController.managedObject = selectedObject;
    }
}

在第二个类 .h 文件中,它具有以下属性:

@property (strong, nonatomic) NSManagedObject *managedObject;

因此,我的数据模型由两个具有反向一对多关系的实体组成。我想访问“managedObject”的 NSSet 以查看它是否包含任何内容或确保存在添加的实体。我尝试了 [self.managedObject allObjects] 和 [self.managedObject hasObjects] 但都没有工作(hasObjects 是托管对象与其他实体之间关系的名称)。如何访问托管对象的关系并返回 NSSet?

4

1 回答 1

3

如果您的核心数据属性名为“toManyRelation”,则使用

NSSet *mySet = [self.managedObject valueForKey:@"toManyRelation"];

...然后从那里去。

我从痛苦的经历中知道,当你从这件事开始时,这些事情并不是太明显。但事实证明它很简单,一旦你知道了。

于 2013-03-10T11:37:22.463 回答