我正在尝试根据一对一关系将属性值设置为自动迭代的数字。我有一个名为“Encounter”的实体,它与“Round”有很多关系,我需要该属性简单地迭代到下一个值并反映当前与Encounter实体相关的轮数。我在接口构建器中绑定和设置了相应的数据模型,tabel视图和数组控制器,它们都可以正常工作。但是当我尝试从我的Round子类NSManagedObject引用遭遇属性时,我得到了null。
例如:
- (void) awakeFromInsert{
[super awakeFromInsert];
Encounter *enc = [self encounter];
NSUInteger roundCount = [[enc rounds]count];
[self setValue:[NSNumber numberWithUnsignedInteger:roundCount] forKey:@"roundNumber"];
}
我还尝试创建一个在托管对象上下文上执行获取请求的方法,但我还没想出如何编写只拉取相关记录的谓词。我确信这很简单,我很遗憾,我很感激你的帮助。
答案 0 :(得分:0)
我找到了一个似乎运作良好的解决方案。基本上,我将NSArrayController子类化并覆盖了addObject方法,看起来如下所示,其中“Round”是NSManagedObject子类的名称:
-(id)newObject{
Round *round = (Round *)[super newObject];
round.roundNumber = [NSNumber numberWithUnsignedInteger:[[self arrangedObjects]count]+1];
return round;
}