diff --git a/ALActionBlocks/UIBarButtonItem+ALActionBlocks.m b/ALActionBlocks/UIBarButtonItem+ALActionBlocks.m index e105186..0be8d53 100644 --- a/ALActionBlocks/UIBarButtonItem+ALActionBlocks.m +++ b/ALActionBlocks/UIBarButtonItem+ALActionBlocks.m @@ -15,33 +15,48 @@ @implementation UIBarButtonItem (ALActionBlocks) - (instancetype)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem block:(ALActionBlock)actionBlock { - UIBarButtonItem *barButtonItem = [[[self class] alloc] initWithBarButtonSystemItem:systemItem target:nil action:nil]; - [barButtonItem setBlock:actionBlock]; - return barButtonItem; + + self = [self initWithBarButtonSystemItem:systemItem target:nil action:nil]; + if (self) { + [self setBlock:actionBlock]; + } + + return self; } - (instancetype)initWithImage:(UIImage *)image landscapeImagePhone:(UIImage *)landscapeImagePhone style:(UIBarButtonItemStyle)style block:(ALActionBlock)actionBlock { - UIBarButtonItem *barButtonItem = [[[self class] alloc] initWithImage:image landscapeImagePhone:landscapeImagePhone style:style target:nil action:nil]; - [barButtonItem setBlock:actionBlock]; - return barButtonItem; + + self = [self initWithImage:image landscapeImagePhone:landscapeImagePhone style:style target:nil action:nil]; + if (self) { + [self setBlock:actionBlock]; + } + + return self; } - (instancetype)initWithImage:(UIImage *)image style:(UIBarButtonItemStyle)style block:(ALActionBlock)actionBlock { - UIBarButtonItem *barButtonItem = [[[self class] alloc] initWithImage:image style:style target:nil action:nil]; - [barButtonItem setBlock:actionBlock]; - return barButtonItem; + + self = [self initWithImage:image style:style target:nil action:nil]; + if (self) { + [self setBlock:actionBlock]; + } + + return self; } - (instancetype)initWithTitle:(NSString *)title style:(UIBarButtonItemStyle)style block:(ALActionBlock)actionBlock { - UIBarButtonItem *barButtonItem = [[[self class] alloc] initWithTitle:title style:style target:nil action:nil]; - [barButtonItem setBlock:actionBlock]; - return barButtonItem; + + self = [self initWithTitle:title style:style target:nil action:nil]; + if (self) { + [self setBlock:actionBlock]; + } + + return self; } - - (void)setBlock:(ALActionBlock)actionBlock { NSMutableArray *actionBlocksArray = [self actionBlocksArray]; diff --git a/ALActionBlocks/UIGestureRecognizer+ALActionBlocks.m b/ALActionBlocks/UIGestureRecognizer+ALActionBlocks.m index 56762d7..ebb75f0 100644 --- a/ALActionBlocks/UIGestureRecognizer+ALActionBlocks.m +++ b/ALActionBlocks/UIGestureRecognizer+ALActionBlocks.m @@ -14,9 +14,12 @@ @implementation UIGestureRecognizer (ALActionBlocks) - (instancetype)initWithBlock:(ALActionBlock)actionBlock { - UIGestureRecognizer *gestureRecognizer = [[[self class] alloc] init]; - [gestureRecognizer setBlock:actionBlock]; - return gestureRecognizer; + self = [self init]; + if (self) { + [self setBlock:actionBlock]; + } + + return self; } diff --git a/Demo/ALActionBlocks.xcodeproj/project.pbxproj b/Demo/ALActionBlocks.xcodeproj/project.pbxproj index 4b4e5e3..e049aae 100644 --- a/Demo/ALActionBlocks.xcodeproj/project.pbxproj +++ b/Demo/ALActionBlocks.xcodeproj/project.pbxproj @@ -164,7 +164,7 @@ isa = PBXProject; attributes = { CLASSPREFIX = AL; - LastUpgradeCheck = 0460; + LastUpgradeCheck = 0700; ORGANIZATIONNAME = "Andy LaVoy"; }; buildConfigurationList = A1AE07B8170741AC0028A95E /* Build configuration list for PBXProject "ALActionBlocks" */; @@ -241,6 +241,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -292,6 +293,7 @@ GCC_PREFIX_HEADER = "ALActionBlocks/ALActionBlocks-Prefix.pch"; INFOPLIST_FILE = "ALActionBlocks/ALActionBlocks-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 7.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.andylavoy.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = 1; WRAPPER_EXTENSION = app; @@ -305,6 +307,7 @@ GCC_PREFIX_HEADER = "ALActionBlocks/ALActionBlocks-Prefix.pch"; INFOPLIST_FILE = "ALActionBlocks/ALActionBlocks-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 7.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.andylavoy.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = 1; WRAPPER_EXTENSION = app; diff --git a/Demo/ALActionBlocks/ALActionBlocks-Info.plist b/Demo/ALActionBlocks/ALActionBlocks-Info.plist index 1492225..6a012bd 100644 --- a/Demo/ALActionBlocks/ALActionBlocks-Info.plist +++ b/Demo/ALActionBlocks/ALActionBlocks-Info.plist @@ -9,7 +9,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - com.andylavoy.${PRODUCT_NAME:rfc1034identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/Demo/ALActionBlocks/ALViewController.m b/Demo/ALActionBlocks/ALViewController.m index 0ea3776..20299b4 100644 --- a/Demo/ALActionBlocks/ALViewController.m +++ b/Demo/ALActionBlocks/ALViewController.m @@ -23,20 +23,28 @@ - (void)viewDidLoad { self.view.backgroundColor = [UIColor whiteColor]; self.title = @"ALActionBlocks"; + + self.button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; self.button.frame = CGRectMake(60, 44 + 64, 200, 44); [self.button setTitle:@"Start" forState:UIControlStateNormal]; [self.button handleControlEvents:UIControlEventTouchUpInside withBlock:^(UIButton *weakButton) { NSLog(@"buttton pressed: %@", [weakButton titleForState:UIControlStateNormal]); + }]; [self.view addSubview:self.button]; UISwitch *aSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(120, 132 + 64, 0, 0)]; [aSwitch handleControlEvents:UIControlEventValueChanged withBlock:^(id weakControl) { NSLog(@"value: %d", aSwitch.isOn); + + + }]; [self.view addSubview:aSwitch]; + + UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:@[@"One", @"Two", @"Three"]]; segmentedControl.frame = CGRectMake(88, 220 + 64, 143, 30); [segmentedControl handleControlEvents:UIControlEventValueChanged withBlock:^(id weakControl) {