Iphone 如果我有一个保留的NSManagedObject,如何检查其中一个';s可选关系是否有值?
我有一个名为account的NSManagedObject,它是从获取中返回并保留的。此NSManagedObject有一个称为reports的可选关系,它是报表实体的多个关系。一个帐户可以有许多报告 但是,创建帐户实体时,不会有任何报告。当我第一次传递这个新创建的对象帐户时,如何正确地检查它是否没有报告 我两个都试过了:Iphone 如果我有一个保留的NSManagedObject,如何检查其中一个';s可选关系是否有值?,iphone,cocoa-touch,core-data,ios4,Iphone,Cocoa Touch,Core Data,Ios4,我有一个名为account的NSManagedObject,它是从获取中返回并保留的。此NSManagedObject有一个称为reports的可选关系,它是报表实体的多个关系。一个帐户可以有许多报告 但是,创建帐户实体时,不会有任何报告。当我第一次传递这个新创建的对象帐户时,如何正确地检查它是否没有报告 我两个都试过了: if ([self.account valueForKey:@"reports"] == nil) if ([self.account valueForKey:@"repo
if ([self.account valueForKey:@"reports"] == nil)
if ([self.account valueForKey:@"reports"] == NULL)
检查[self.account valueForKey:@“reports”]时,NSLog在控制台中返回关系错误。我读到这是正常的,因为它没有值或任何与之相关的报表实体
但是,如何通过编程检查这一点?由于这是一个对多关系,它由一个NSMutableSet对象表示(从技术上讲,它是一个特定于CoreData的子类,但这并不重要)。该对象将始终存在,即使其中没有对象,并且您在控制台中看到的是它的描述。您需要调用
count
,查看报表关系中有多少对象
if([[self.account valueForKey:@"reports"] count] == 0) [self noReports];
与你在问题中所做的一样,检查nil对一对一关系有效