items . 我的子类有一个名为 itemCount . 不幸的是,我试图在 项目 关系始终返回0。以下是相关代码:
items
itemCount
@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
self.items 计数总是返回零个对象。有什么想法吗?
self.items
首先,你要分配 nil items 在你的 if 陈述你想要 if (items == nil) (或 if (!items) ). 当发生异常情况时,始终使用调试器逐步检查代码以测试逻辑。
nil
if
if (items == nil)
if (!items)
其次,你可以通过键路径得到计数, @"@count.items" 不需要你的 -itemCount 方法。你也可以这样做 self.items.count (因为 count 是一种财产 项目 项目 是的财产 self ,相当于 [[self items] count]
@"@count.items"
-itemCount
self.items.count
count
项目
self
[[self items] count]