Ios 访问核心数据中我的托管对象的NSSet

Ios 访问核心数据中我的托管对象的NSSet,ios,objective-c,cocoa-touch,Ios,Objective C,Cocoa Touch,我正在开发的应用程序由两个类组成,每个类都属于一个表视图控制器(你可以说这个应用程序类似于一个主细节应用程序)。在第一个类中,特别是在prepareforsgue方法中,我传递了一个NSMangedObject,以便下一个视图可以向托管对象的属性添加一些内容 我在第一节课上键入了以下内容: - (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue destinationViewC

我正在开发的应用程序由两个类组成,每个类都属于一个表视图控制器(你可以说这个应用程序类似于一个主细节应用程序)。在第一个类中,特别是在prepareforsgue方法中,我传递了一个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;
    }
}
在第二个class.h文件中,它具有以下属性:

@property (strong, nonatomic) NSManagedObject *managedObject;

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

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

NSSet *mySet = [self.managedObject valueForKey:@"toManyRelation"];
。。。从那里开始


从痛苦的经历中我知道,从这件事开始,这些事情并不太明显。但一旦你知道了,事情就变得很简单了

不是Xcode问题。请使用KVO getter
-valueForKey:
触发故障并获得正确的值。@H2CO3 mmm。。这是什么意思?@user1938695我的意思是,这个问题与Xcode无关。@CodaFi在托管对象类中,它自动生成了一些方法,这些方法似乎有助于向关系NSSet属性添加和删除对象。我是否使用这些添加到属性中?实际上,我试图使用它们,但它们似乎是私有的,我无法从其他类访问它们。我应该更改它们的位置还是将它们保留在那里?好的,现在如何将对象添加到NSSet关系属性?我尝试访问CoreDataGeneratedAccessor方法,该方法似乎有助于向NSSet添加和删除对象,但我做不到。我想他们是私人的。我可以改变他们的位置吗?还是最好保留他们并使用另一种方式?这是一个regluar NSSet。确保为与关系相关的同一实体创建正确的NSManagedObject,并将其添加到集合中。我使用setByAddingObject来实现这一点。好吧,如果你为核心数据实体自动包装模型类,那么它附带了一个add。。。并删除。。。每套的方法。这可能比使用抽象的KVC模式更方便。嗨,我有点困惑:*mySet只是一个随机名称还是核心数据中NSSet的实际名称?*mySet是一个随机名称。