blob: b18372514f253d95710ce7fd19673763d09ac2e8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
//
// 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) {
[indexMap setObject:aKey forKey:[NSString stringWithFormat:@"%d", index]];
index++;
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
|