Reputation: 49354
My managed object has a relationship called items
. My subclass has a method called itemCount
. Unfortunatly my attempts to get the object count in the items relationship always returns 0. Here's the relevant code:
@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
When I walk through the itemCount method it appears to work just fine, but the self.items
counts always return zero objects. Any ideas?
Upvotes: 1
Views: 1328
Reputation: 61228
First of all, you're assigning nil
to items
in your if
statement. You want if (items == nil)
(or if (!items)
). Always use the debugger to step through your code to test your logic when something odd is happening.
Second of all, you can get the count with the keypath, @"@count.items"
without the need for your -itemCount
method. You could also do self.items.count
(because count
is a property of the items
set as items
is a property of self
, which is equivalent to [[self items] count]
).
Upvotes: 4