Skip to content

Commit

Permalink
Move common init code to a separate function
Browse files Browse the repository at this point in the history
  • Loading branch information
jklundell committed Sep 23, 2012
1 parent 1d98c6c commit 6f54453
Showing 1 changed file with 15 additions and 10 deletions.
25 changes: 15 additions & 10 deletions KCMutableDictionary/KCMutableDictionary.m
Expand Up @@ -106,12 +106,8 @@ - (BOOL)_fetchDict

static KCMutableDictionary *_sharedDictionary = nil;

- (id)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys
- (id)_init_common
{
if (objects.count || keys.count) {
[NSException raise:@"bad_init" format:@"KCMutableDictionarry cannot be initialized with data"];
return nil;
}
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
if (self) {
Expand All @@ -121,17 +117,26 @@ - (id)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys
[self _fetchDict];
}
});
return _sharedDictionary;
return _sharedDictionary;
}

- (id)initWithCapacity:(NSUInteger)numItems
- (id)init
{
return [self initWithObjects:@[] forKeys:@[]];
return self._init_common;
}

- (id)init
- (id)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys
{
if (objects.count || keys.count) {
[NSException raise:@"bad_init" format:@"KCMutableDictionarry cannot be initialized with data"];
return nil;
}
return self._init_common;
}

- (id)initWithCapacity:(NSUInteger)numItems
{
return [self initWithObjects:@[] forKeys:@[]];
return self._init_common;
}

- (NSUInteger)count
Expand Down

0 comments on commit 6f54453

Please sign in to comment.