我的托管对象有一个名为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
计数总是返回零对象。有什么想法吗?
答案 0 :(得分:4)
首先,您要在nil
声明中为items
分配if
。您想要if (items == nil)
(或if (!items)
)。当奇怪的事情发生时,总是使用调试器逐步执行代码来测试逻辑。
其次,您可以使用密钥路径@"@count.items"
获取计数,而无需使用-itemCount
方法。您也可以执行self.items.count
(因为count
是items
集的属性,因为items
属性为self
,相当于{{1} }})。