Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 97 lines (77 sloc) 2.329 kb
5010dc5 Paul Kim - Consolidated the new row spanning table view and the sticky row table ...
authored
1 //
2 // NSIndexSet-NoodleExtensions.m
3 // NoodleRowSpanningTableViewTest
4 //
5 // Created by Paul Kim on 10/20/09.
6 // Copyright 2009 Noodlesoft, LLC. All rights reserved.
7 //
8 // Permission is hereby granted, free of charge, to any person
9 // obtaining a copy of this software and associated documentation
10 // files (the "Software"), to deal in the Software without
11 // restriction, including without limitation the rights to use,
12 // copy, modify, merge, publish, distribute, sublicense, and/or sell
13 // copies of the Software, and to permit persons to whom the
14 // Software is furnished to do so, subject to the following
15 // conditions:
16 //
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 //
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
22 // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
24 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
25 // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
27 // OTHER DEALINGS IN THE SOFTWARE.
28
29 #import "NSIndexSet-NoodleExtensions.h"
30
31 @interface NoodleIndexSetEnumerator ()
32
33 + enumeratorWithIndexSet:(NSIndexSet *)set;
34 - initWithIndexSet:(NSIndexSet *)set;
35
36 @end
37
38 @implementation NoodleIndexSetEnumerator
39
40 + enumeratorWithIndexSet:(NSIndexSet *)set
41 {
42 return [[[[self class] alloc] initWithIndexSet:set] autorelease];
43 }
44
45 - initWithIndexSet:(NSIndexSet *)set
46 {
47 if ((self = [super init]) != nil)
48 {
49 _currentIndex = 0;
50 _count = [set count];
51 _indexes = (NSUInteger *)malloc(sizeof(NSUInteger) * _count);
52
53 [set getIndexes:_indexes maxCount:_count inIndexRange:nil];
54 }
55 return self;
56 }
57
58 - (void)dealloc
59 {
60 free(_indexes);
61 _indexes = NULL;
62 [super dealloc];
63 }
64
65 - (void)finalize
66 {
67 free(_indexes);
68 [super finalize];
69 }
70
71 - (NSUInteger)nextIndex
72 {
73 if (_currentIndex < _count)
74 {
75 NSUInteger i;
76
77 i = _indexes[_currentIndex];
78 _currentIndex++;
79
80 return i;
81 }
82 return NSNotFound;
83 }
84
85 @end
86
87 @implementation NSIndexSet (NoodleExtensions)
88
89 - (NoodleIndexSetEnumerator *)indexEnumerator
90 {
91 return [NoodleIndexSetEnumerator enumeratorWithIndexSet:self];
92 }
93
94 @end
95
96
Something went wrong with that request. Please try again.