Translate

2014년 10월 24일 금요일

[iOS] selectedRowInComponent 호출 시 row가 무조건 0으로 리턴되는 경우




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


위의 책으로 7장 '탭바와 피커' 부분을 공부 하다가 예제소스를 그대로 따라했다고 생각했는데 다음과 같은 문제가 생겼다.



Source
============================
- (void)buttonPressed {
    NSInteger row = [self.singlePicker selectedRowInComponent:0];
    NSString *selected = self.characterNames[row];
    NSString *title = [[NSString alloc] initWithFormat:@"You selected %@!", selected];
    UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle:title
                          message:@"Thank you for choosing."
                          delegate:nil
                          cancelButtonTitle:@"You're Welcome"
                          otherButtonTitles:nil];
    [alert show];
}
============================


위의 소스에서 selectedRowInComponent 함수가 무조건 0으로만 리턴을해서 row변수에 0이 계속 담기는 증상이 있었다.







찾아서 수정을 하고보니 너무 허무했지만 찾는데 너무 시간을 오래 들였던 것 같다.


원인
- Picker에 아웃렛(outlet) 연결이 되어있지 않았다.








아웃렛(outlet) 연결방법

1. 컨트롤키를 누른상태에서 'File's Owner' 를 클릭하고 피커로 드래그 후 놓는다.


2. 아웃렛을 선택한다.


3. 아웃렛이 연결되었는지 확인한다.





책을 다시한번 꼼꼼하게 읽어보니 아웃렛 연결하는 부분이 있었다. (p.210)



댓글 없음 :

댓글 쓰기