代码之家  ›  专栏  ›  技术社区  ›  kubi

访问NSManagedObject中的关系对象时出现问题

  •  1
  • kubi  · 技术社区  · 15 年前

    items . 我的子类有一个名为 itemCount . 不幸的是,我试图在 项目 关系始终返回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
    

    self.items 计数总是返回零个对象。有什么想法吗?

    1 回复  |  直到 15 年前
        1
  •  4
  •   Joshua Nozzi    15 年前

    首先,你要分配 nil items 在你的 if 陈述你想要 if (items == nil) (或 if (!items) ). 当发生异常情况时,始终使用调试器逐步检查代码以测试逻辑。

    其次,你可以通过键路径得到计数, @"@count.items" 不需要你的 -itemCount 方法。你也可以这样做 self.items.count (因为 count 是一种财产 项目 项目 是的财产 self ,相当于 [[self items] count]

    推荐文章