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) {