Iphone 如何使用具有3个链接实体的核心数据设计
我在从3个链接实体获取核心数据信息时遇到问题。有些有效,有些无效Iphone 如何使用具有3个链接实体的核心数据设计,iphone,objective-c,xcode,core-data,Iphone,Objective C,Xcode,Core Data,我在从3个链接实体获取核心数据信息时遇到问题。有些有效,有些无效 Model Entity Accounts RegDate relationship heldby >> to-many >> inAccounts attributes balance addDate name Entity RegDate
Model
Entity Accounts RegDate
relationship heldby >> to-many >> inAccounts
attributes balance addDate
name
Entity RegDate Regster
relationship regheldBy >> to-many >> inRegDate
attributes addDate amount
当我这样做时:
Regster *regster = [self.fetchedResultsController objectAtIndexPath:indexPath];
cell.textLabel.text = regster.amount;
NSLog(@"Regster: %@ %@", regster.amount, regster.inRegDate.addDate);
RegDate *regdate = [self.fetchedResultsController objectAtIndexPath:indexPath];
cell.textLabel.text = regdate.addDate;
NSLog(@"RegDate: %@", regdate.addDate);
regster.amount显示预期值,但regster.inRegDate.addDate为空
当我这样做时:
Regster *regster = [self.fetchedResultsController objectAtIndexPath:indexPath];
cell.textLabel.text = regster.amount;
NSLog(@"Regster: %@ %@", regster.amount, regster.inRegDate.addDate);
RegDate *regdate = [self.fetchedResultsController objectAtIndexPath:indexPath];
cell.textLabel.text = regdate.addDate;
NSLog(@"RegDate: %@", regdate.addDate);
regdate.addDate显示预期值,而上一个示例中我得到null。
此外,我无法获取要显示的数量。
我想我可以使用:regdate.regheldBy.amount>,但这会导致错误“在“NSSet”类型的对象上找不到属性“amount”
不知道我做错了什么。。。我猜我可能有关系设置不当。我试过很多不同的方法,但都没能成功
有什么想法吗?可能是因为没有为所有关系设置反向关系
另外,由于
regdate.regheldBy
是一种对多关系,因此它由一个包含Regster
对象的集合表示。您不能在集合上调用amount
,首先必须从集合中选择一个Regster
对象。我不知道关系,但最后一个问题很简单。由于regheldBy
可以指向许多Regster对象,因此它不知道要从哪个对象获取amount
值。你需要从it参考资料中选择一个特定的。我听到你说的话,我理解。。。只是不确定这是如何实现的。在我看到的所有示例中,我没有看到编码方面有任何不同。你能详细介绍一下吗?我将尝试研究并了解这是如何实现的。如果您有一个与两个Regster对象相关的RegDate,您将如何确定要显示的金额?(我不是问代码,只是你需要申请的“业务需求”)似乎@mprivat和Phillip Mills也在说同样的话。我不知道如何从集合中选择特定的Regster对象。你能详细介绍一下吗?我将试着看看我能挖掘到什么。我需要设置一个数组,使用allObjects拉入redate.regheldBy吗?不,你可以这样做:for(regdate.regheldBy中的Regster*r){NSLog(@“%f”,r.amount);}
我理解这段代码以及它在做什么。不幸的是,它没有显示NSLog,这意味着它没有进入for循环。这意味着你的集合是空的。您可以使用NSLog(@“%d”,[regdate.regheldBy count])检查这一点;