1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- //
- // Licensed under the terms in License.txt
- //
- // Copyright 2010 Allen Ding. All rights reserved.
- //
- #import "KWBlock.h"
- @interface KWBlock()
- #pragma mark - Properties
- @property (nonatomic, readonly, copy) void (^block)(void);
- @end
- @implementation KWBlock
- #pragma mark - Initializing
- - (id)initWithBlock:(void (^)(void))block {
- self = [super init];
- if (self) {
- _block = [block copy];
- }
- return self;
- }
- + (id)blockWithBlock:(void (^)(void))aBlock {
- return [[self alloc] initWithBlock:aBlock];
- }
- #pragma mark - Calling Blocks
- - (void)call {
- self.block();
- }
- @end
- #pragma mark - Creating Blocks
- KWBlock *theBlock(void (^block)(void)) {
- return lambda(block);
- }
- KWBlock *lambda(void (^block)(void)) {
- return [KWBlock blockWithBlock:block];
- }
|