Better constructor for Config.
authorJoe Wreschnig <joe.wreschnig@gmail.com>
Thu, 28 Feb 2013 20:42:23 +0000 (21:42 +0100)
committerJoe Wreschnig <joe.wreschnig@gmail.com>
Thu, 28 Feb 2013 20:42:23 +0000 (21:42 +0100)
Config.h
Config.m
ConfigsController.m

index 2572669..cc96f2a 100644 (file)
--- a/Config.h
+++ b/Config.h
@@ -14,6 +14,7 @@
 @property (copy) NSString *name;
 @property (readonly) NSMutableDictionary *entries;
 
+- (id)initWithName:(NSString *)name;
 - (Target *)objectForKeyedSubscript:(JSAction *)action;
 - (void)setObject:(Target *)target forKeyedSubscript:(JSAction *)action;
 
index 84e6c32..5a83ed3 100644 (file)
--- a/Config.m
+++ b/Config.m
@@ -9,30 +9,26 @@
 
 #import "JSAction.h"
 
-@implementation Config {
-    NSMutableDictionary *entries;
-}
-
-@synthesize name;
-@synthesize entries;
+@implementation Config
 
-- (id)init {
+- (id)initWithName:(NSString *)name {
     if ((self = [super init])) {
-        entries = [[NSMutableDictionary alloc] init];
+        self.name = name;
+        _entries = [[NSMutableDictionary alloc] init];
     }
     return self;
 }
 
 - (Target *)objectForKeyedSubscript:(JSAction *)action {
-    return action ? entries[action.uid] : nil;
+    return action ? _entries[action.uid] : nil;
 }
 
 - (void)setObject:(Target *)target forKeyedSubscript:(JSAction *)action {
     if (action) {
         if (target)
-            entries[action.uid] = target;
+            _entries[action.uid] = target;
         else
-            [entries removeObjectForKey:action.uid];
+            [_entries removeObjectForKey:action.uid];
     }
 }
 
index dbb2c6f..4227d43 100644 (file)
@@ -24,8 +24,7 @@
 - (id)init {
     if ((self = [super init])) {
         configs = [[NSMutableArray alloc] init];
-        currentConfig = [[Config alloc] init];
-        currentConfig.name = @"(default)";
+        currentConfig = [[Config alloc] initWithName:@"(default)"];
         manualConfig = currentConfig;
         [configs addObject:currentConfig];
     }
@@ -60,8 +59,7 @@
 }
 
 - (IBAction)addPressed:(id)sender {
-    Config *newConfig = [[Config alloc] init];
-    newConfig.name = @"untitled";
+    Config *newConfig = [[Config alloc] initWithName:@"Untitled"];
     [configs addObject:newConfig];
     [(ApplicationController *)[[NSApplication sharedApplication] delegate] configsChanged];
     [tableView reloadData];
 
     // have to do two passes in case config1 refers to config2 via a TargetConfig
     for (NSDictionary *storedConfig in storedConfigs) {
-        Config *cfg = [[Config alloc] init];
-        cfg.name = storedConfig[@"name"];
+        Config *cfg = [[Config alloc] initWithName:storedConfig[@"name"]];
         [newConfigs addObject:cfg];
     }