Я сделал свой собственный класс с UIView, включая UIButton и способ для него:UIButton из моего класса не работает (EXC_BAD_ACCESS) в ViewController
MyClass.h
@property (strong, nonatomic) UIView* mainBack;
@property (strong, nonatomic) UIButton* sortButton;
MyClass.m
- (id) initFor: (int) object {
if (self = [super init]) {
_mainBack = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
_sortButton = [UIButton buttonWithType:UIButtonTypeSystem];
_sortButton.frame = CGRectMake(10.0, 5.0, 60.0, 40.0);
[_sortButton addTarget:self action:@selector(ChangeSort) forControlEvents:UIControlEventTouchUpInside];
[_mainBack addSubview:_sortButton];
}
return self;
}
- (void) ChangeSort {
NSLog(@"change");
}
- (void) ShowBarOnView: (UIViewController*) view AtPoint: (CGPoint) point{
[_mainBack setFrame:CGRectMake(point.x, point.y, _mainBack.frame.size.width, _mainBack.frame.size.height)];
[view.view addSubview:_mainBack];
}
В ViewController я сделал экземпляр MyClass и называется метод показать Просмотреть
MyClass* mySort = [[myClass alloc] initFor: rooms];
[mySort ShowBarOnView:self AtPoint:CGPointMake(0, 50)];
Таким образом, я получил вид с помощью кнопки, но при нажатии, происходит сбой приложения и показывает: EXC_BAD_ACCESS (код = 1, адрес = 0x0)
Что не так?
Спасибо.
отладчик мог бы сказать вам, что. BTW, если вы не используете ARC, тогда строка '_sortButton = [UIButton buttonWithType: UIButtonTypeSystem];' отсутствует 'keep'. –
Пожалуйста, измените название своего класса для лучшей практики, имена классов должны быть буквами 'MyClass.m' вместо' myClass.m' – Malloc
Возможно, не связанный, но вы должны использовать 'self.' для доступа к своим переменным экземпляра везде вне методов setter, getter, init и alloc. – nhgrif