[iOS] '[UISegmentedControl isOn]: unrecognized selector sent to instance' 오류증상




Java를 공부함에 있어서 100번이상 디버깅을 해봐야 어느정도 할수 있다란 말을 들었는데 참 와닿는 말이면서도 처음에는 간단한 것이라도 디버깅을 하기가 참 힘들다고 느껴진다.


최근 갓 iOS를 공부하면서 책에 있는 예제들을 하나하나 따라가 보는데
공부를 시작하면서 다음의 오류를 찾는데 시간이 좀 걸려서 이렇게 포스팅!!


시작하세요! iOS 6 프로그래밍 - 10점
데이브 마크 외 지음, 유윤선 옮김/위키북스


위의 책을 보면서 공부를 하고있는데 'Control Fun' 예제를 따라하다가 분할컨트롤(Segmented Control)을 클릭 시 아래와 같은 오류가 발생을 했다.



Log 는 다음과 같이 나왔다.

2014-10-13 15:13:45.361 Control Fun[32774:907] -[UISegmentedControl isOn]: unrecognized selector sent to instance 0x7267e70
2014-10-13 15:13:45.363 Control Fun[32774:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UISegmentedControl isOn]: unrecognized selector sent to instance 0x7267e70'
*** First throw call stack:
(0x1c8e012 0x10cbe7e 0x1d194bd 0x1c7dbbc 0x1c7d94e 0x24d4 0x10df705 0x16920 0x168b8 0xd7671 0xd7bcf 0xd76a6 0x12c597 0x12e83b 0x4616d 0x46552 0x243aa 0x15cf8 0x1be9df9 0x1be9ad0 0x1c03bf5 0x1c03962 0x1c34bb6 0x1c33f44 0x1c33e1b 0x1be87e3 0x1be8668 0x1365c 0x1c1d 0x1b45)
libc++abi.dylib: terminate called throwing an exception


[UISegmentedControl isOn]: unrecognized selector sent to instance 0x7267e70
에 포커스를 맞춰서 원인분석을 해보니 디버깅하는데 그리 오래 걸리지 않았다.


원인은 'switchChanged' 라는 메소드가 걸려있었는데 해당 메소드에서
UISegmentedControl 에 없는걸 사용하고 있었다.
해당 메소드를 사용하지 않게 제거 하는 것으로 디버깅 해결.

Source
============================
- (IBAction)switchChanged:(UISwitch *)sender {
    BOOL setting = sender.isOn;
    [self.leftSwitch setOn:setting animated:YES];
    [self.rightSwitch setOn:setting animated:YES];

}
============================






댓글