2009-12-31 37 views
1

我的被管對象有一個叫做items的關係。我的子類有一個叫做itemCount的方法。不幸的是我試圖獲得在項目關係總是返回0。這裏是有關的代碼的對象計數:訪問NSManagedObject中關係對象的問題

@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計數總是回報零對象。有任何想法嗎?

回答

4

首先,您在if聲明中將nil分配到items。您需要if (items == nil)(或if (!items))。當發生奇怪的事情時,總是使用調試器逐步執行代碼以測試您的邏輯。

其次,您可以使用keypath,@"@count.items"獲得計數,而無需使用-itemCount方法。您也可以這樣做self.items.count(因爲countitems的一個屬性,因爲itemsself的財產,相當於[[self items] count])。

+0

謝謝!我覺得這是件小事。 – kubi