我有一个视图控制器,当它完成时,我发布一个通知,并在另一个视图控制器中包含的子视图中添加为 oberserve。但是,当它尝试执行发布通知方法时,exec_bad_access 发生了。怎么了?代码是:
BrandListByIdViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSNumber *bid = self.brands[indexPath.row][@"id"];
[self dismissViewControllerAnimated:YES completion:^{
[[NSNotificationCenter defaultCenter] postNotificationName:@"SelectedBrandId" object:nil];
}];
}
SearchNewProduct.h
@interface SearchNewProduct : UIView
@end
SearchNewProduct.m
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didSelectedBrandId::) name:@"SelectedBrandId" object:nil];
}
}
- (void)didSelectedBrandId:(NSNotification *)notif{
NSLog(@"%s", __PRETTY_FUNCTION__);
}
即使我摆脱了 userInfo,仍然无法访问。我在另一个新项目中创建了类似的情况,它工作正常。