Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如果我有一个保留的NSManagedObject,如何检查其中一个';s可选关系是否有值?_Iphone_Cocoa Touch_Core Data_Ios4 - Fatal编程技术网

Iphone 如果我有一个保留的NSManagedObject,如何检查其中一个';s可选关系是否有值?

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

我有一个名为account的NSManagedObject,它是从获取中返回并保留的。此NSManagedObject有一个称为reports的可选关系,它是报表实体的多个关系。一个帐户可以有许多报告

但是,创建帐户实体时,不会有任何报告。当我第一次传递这个新创建的对象帐户时,如何正确地检查它是否没有报告

我两个都试过了:

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对一对一关系有效