summaryrefslogtreecommitdiffstats
path: root/Classes/SectionDictionary.m
diff options
context:
space:
mode:
Diffstat (limited to 'Classes/SectionDictionary.m')
-rw-r--r--Classes/SectionDictionary.m64
1 files changed, 64 insertions, 0 deletions
diff --git a/Classes/SectionDictionary.m b/Classes/SectionDictionary.m
new file mode 100644
index 0000000..8845b2b
--- /dev/null
+++ b/Classes/SectionDictionary.m
@@ -0,0 +1,64 @@
+//
+// SectionDictionary.m
+// PicCast
+//
+// Created by Matthew Handler on 4/23/11.
+// Copyright 2011 Earl Industries. All rights reserved.
+//
+
+#import "SectionDictionary.h"
+
+
+@implementation SectionDictionary
+
+//@synthesize index;
+
+- (SectionDictionary *) init {
+ index = 0;
+ indexMap = [[[NSMutableDictionary alloc] init] retain];
+ theRealDictionary = [[[NSMutableDictionary alloc] init] retain];
+ [super init];
+
+ return self;
+}
+
+- (id)forwardingTargetForSelector:(SEL)aSelector
+{
+ return theRealDictionary;
+}
+
+- (void) setObject:(id)anObject forKey:(id)aKey {
+ [indexMap setObject:aKey forKey:[NSString stringWithFormat:@"%d", index]];
+ index++;
+ [theRealDictionary setObject:anObject forKey:aKey];
+}
+
+// lets you push objects into sections without worry about storage
+- (void) appendObject:(id)anObject forKey:(id)aKey {
+ NSMutableArray *store = [theRealDictionary objectForKey:aKey];
+ if (store == nil) {
+ NSMutableArray *store = [[[NSMutableArray alloc] init] autorelease];
+ [store addObject:anObject];
+ [theRealDictionary setObject:store forKey:aKey];
+ }
+ else [store addObject:anObject];
+
+ NSLog(@"number of rows: %d", [[theRealDictionary objectForKey:aKey] count]);
+}
+
+- (id) objectForIndex:(NSInteger)i {
+ return [theRealDictionary objectForKey:[indexMap objectForKey:[NSString stringWithFormat:@"%d", i]]];
+}
+
+- (NSString *) keyForIndex:(NSInteger)i {
+ return [indexMap objectForKey:[NSString stringWithFormat:@"%d", i]];
+}
+
+- (void) dealloc {
+ [theRealDictionary release];
+ [indexMap release];
+ [super dealloc];
+}
+
+
+@end