我在一个类中定义了一个块:
BXButton.h
typedef void(^ButtonClicked)(id sender, NSDictionary *userInfo);
@property (assign, nonatomic) ButtonClicked onButtonClicked;
- (void)setClickBlock:(ButtonClicked)buttonClicked;
BXButton.m
- (void)setClickBlock:(ButtonClicked)buttonClicked {
onButtonClicked = buttonClicked;
}
- (void)internalButtonClicked {
DLog(@"internal clicked");
if (self.onButtonClicked) {
onButtonClicked(self, self.userInfo);
}
}
我试图在视图控制器中这样调用:
[_testButton setClickBlock:^(BXButton *sender, NSDictionary *userInfo) {
DLog(@"userInfo %@", userInfo);
[sender startLoading];
[[BXAPIClient sharedPublicClient]postPath:@"/" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
[sender endLoading];
//[safeSelf stop];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[sender endLoading];
[self stop];
}];
}];
每当我尝试访问 [self 方法] 或在块之外定义的任何变量时,我总是得到 BAD_ACCESS。有任何想法吗?谢谢!