이 코드는 내가 만든 단추를 누를 때 "잘못된 선택기"오류가 발생합니다. test
함수는 어디에서 가져온 것입니까?버튼의 동작으로 인해 "잘못된 선택기"가 작동을 멈 춥니 다 - 왜요?
Main.m
mainScreen = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 768, 1024)];
[self.view addSubview:mainScreen];
TaskButtons *tB = [[TaskButtons alloc] init];
[mainScreen addSubview:[tB TaskStart]];
TaskButtons.m test
함수가 호출되지 않는 것 같다
- (UIButton*)TaskStart {
CGRect buttonFrame = CGRectMake(500, 206, 400, 35);
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = buttonFrame;
[button setTitle:@"Task Button" forState:UIControlStateNormal];
button.backgroundColor = [UIColor clearColor];
button.titleLabel.textAlignment = UITextAlignmentLeft;
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
[button setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];
[button addTarget:self action:@selector(test) forControlEvents:UIControlEventTouchUpInside];
return button;
}
- (void)test{
NSLog(@"test line");
}
. 버튼의 target
을 self
으로 설정하지 않으면 이라는 함수에 대해 TaskButtons
클래스를 찾아야합니다.
유효하지 않은 선택자 메시지의 텍스트를 포함하십시오. 이렇게하면 실제 메시지가 전송되는 개체를 알 수 있습니다. – jrturton
셀렉터가 호출되기 전에 너무 빨리 인스턴스화 된 객체를 해제하려고 시도하는 것이 ARC라는 것을 알게되었습니다. TaskButtons.m을 Main.h 및 TaskButtons * tB로 가져 오면; 인터페이스에서. 그런 다음 @property (nonatomic, retain)로 속성에 보유하십시오. TaskButtons * tB; 인스턴스화 된 클래스는 ARC가 클래스를 너무 빨리 릴리스하지 않고도 셀렉터를 호출 할 수있을만큼 길게 유지할 수 있습니다. –
'test'는 메소드가 아니라 함수입니다. – Macmade