Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 44d2f1caa9
Fetching contributors…

Cannot retrieve contributors at this time

70 lines (61 sloc) 2.511 kb
/*
* This project constitutes a work of the United States Government and is
* not subject to domestic copyright protection under 17 USC § 105.
*
* However, because the project utilizes code licensed from contributors
* and other third parties, it therefore is licensed under the MIT
* License. http://opensource.org/licenses/mit-license.php. Under that
* license, permission is granted free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the conditions that any appropriate copyright notices and this
* permission notice are included in all copies or substantial portions
* of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
//
// NSArray+WHAdditions.m
// WhiteHouseApp
//
//
#import "NSArray+WHAdditions.h"
@implementation NSArray (WHAdditions)
- (NSArray *)partitionedArrayUsingBlock:(id (^)(id))block
{
NSMutableArray *partitions = [NSMutableArray array];
id testValue = [[NSObject alloc] init];
for (id obj in self) {
id blockValue = block(obj);
if (![testValue isEqual:blockValue]) {
testValue = blockValue;
[partitions addObject:[NSMutableArray array]];
}
[(NSMutableArray *)[partitions lastObject] addObject:obj];
}
return partitions;
}
- (NSArray *)filteredArrayUsingBlock:(BOOL (^)(id))block
{
return [self filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
return block(evaluatedObject);
}]];
}
- (NSArray *)mappedArrayUsingBlock:(id (^)(id))block
{
NSMutableArray *result = [NSMutableArray arrayWithCapacity:[self count]];
for (id obj in self) {
[result addObject:block(obj)];
}
return result;
}
@end
Jump to Line
Something went wrong with that request. Please try again.