我的托管对象具有称为items
的关系。我的子类有一个称为itemCount
的方法。不幸的是,我尝试在items关系中获取对象计数的尝试始终返回0。这是相关代码:
@interface List : NSManagedObject {}
@property (nonatomic, retain) NSSet* items;
@property (nonatomic, readonly) NSNumber * itemCount;
@end
@implementation List
@dynamic items;
- (NSNumber *)itemCount
{
NSNumber * tmpValue;
NSSet *items = self.items;
if (items = nil) {
return 0;
}
tmpValue = [NSNumber numberWithInt:[items count]];
return tmpValue;
}
@end
当我遍历itemCount方法时,它似乎可以正常工作,但是
self.items
计数始终返回零对象。有任何想法吗? 最佳答案
首先,您要在nil
语句中将items
分配给if
。您需要if (items == nil)
(或if (!items)
)。当发生奇怪的事情时,请始终使用调试器来逐步执行代码以测试逻辑。
第二,您可以使用键路径@"@count.items"
来获取计数,而无需使用-itemCount
方法。您也可以执行self.items.count
(因为count
是items
的属性,因为items
是self
的属性,它等效于[[self items] count]
)。
关于objective-c - 访问NSManagedObject中的关系对象时出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1986760/