Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Foundation Collections Kevin Conner @connerk
Slide 2
Slide 2 text
You know these • NSArray • NSDictionary • NSRange • NSNull
Slide 3
Slide 3 text
New syntax • array[i] • dictionary[k] • @[larry, moe, curly] • @{ key: value, foo: bar } • @3, @YES, @(array.count - 1)
Slide 4
Slide 4 text
Let’s talk about sets baby
Slide 5
Slide 5 text
NSSet • -addObject: • -removeObject: • -containsObject: • -anyObject
Slide 6
Slide 6 text
NSIndexSet • -addIndex: • -removeIndex: • -containsIndex: • -enumerateIndexesUsingBlock: • -enumerateRangesUsingBlock: • -countOfIndexesInRange: (et al)
Slide 7
Slide 7 text
Sets can be indexes for other collections • NSSet : NSDictionary :: NSIndexSet : NSArray • [dictionary keySet] • [NSIndexSet indexSetWithRange: • NSMakeRange(0, array.count)]
Slide 8
Slide 8 text
NSSet theory • -intersectsSet: • -isSubsetOfSet: • -unionSet: • -minusSet: • -intersectSet:
Slide 9
Slide 9 text
NSIndexSet theory • -containsIndexes: • -enumerateRangesUsingBlock: • -intersectsIndexesInRange: • -addIndexesInRange: • -removeIndexesInRange:
Slide 10
Slide 10 text
NSCountedSet • -addObject: • -removeObject: • -countForObject: • -initWithArray:
Slide 11
Slide 11 text
"An object can be put into the same pool several times, in which case it receives a release message for each time it was put into the pool."
Slide 12
Slide 12 text
Let’s talk about ordered collections baby
Slide 13
Slide 13 text
NSArray and NSOrderedSet • -objectAtIndex: • -indexOfObject: • -insertObject:atIndex: • -removeObjectAtIndex: • -exchangeObjectAtIndex:withObjectAtIndex:
Slide 14
Slide 14 text
Ordered collections and NSIndexSet • -objectsAtIndexes: • -insertObjects:atIndexes: • -removeObjectsAtIndexes: • -moveObjectsAtIndexes:toIndex: • -shiftIndexesStartingAtIndex:by:
Slide 15
Slide 15 text
Searching • -indexOfObject: • -indexOfObjectPassingTest: • -indexOfObjectAtIndexes:options:passingTest: • -indexOfObject:inSortedRange:objects:usingComparator:
Slide 16
Slide 16 text
Filtering • -objectsPassingTest: • -keysOfEntriesPassingTest: • -indexesPassingTest: • -indexesOfObjectsPassingTest: • -indexesOfObjectsAtIndexes:options:passingTest:
Slide 17
Slide 17 text
intermission
Slide 18
Slide 18 text
Making sets from other collections • +orderedSetWithSet: • +orderedSetWithArray: • +setWithArray • [orderedSet set]
Slide 19
Slide 19 text
Making arrays from sets • [orderedSet array] • -sortedArrayUsingDescriptors:
Slide 20
Slide 20 text
NSSortDescriptor • +sortDescriptorWithKey:ascending: • +sortDescriptorWithKey:ascending:selector: • +sortDescriptorWithKey:ascending:comparator:
Slide 21
Slide 21 text
Invocation • -makeObjectsPerformSelector: • -makeObjectsPerformSelectorWithObject:
Slide 22
Slide 22 text
Concatenation • -componentsJoinedByString:
Slide 23
Slide 23 text
NSCache look it up!
Slide 24
Slide 24 text
degreesgame.com Kevin Conner @connerk