1. Project 생성
  1) Create a new Xcode Project -> View based Application -> "PickerTest"

2. Picker View 추가/연결하기
  1) PickerTestViewController.xib 실행
  2) Library 창에서 "Picker View"와 "Label"을 윈도우로 Drag & Drop 
  3) IBOutlet 변수 추가
@interface PickerTestViewController: UIViewController {
IBOutlet UIPickerView *dataPicker;
IBOutlet UILabel *selectedText;

}
@end

  4) File's Owner 선택해 "Picker View"와 "Label"에 각각 변수연결
  5) UIPickerViewDataSource 클래스의 " required" 메소스 추가
    - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
      Picker Control의 Picker 갯수 (선택 항목 갯수)
    - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
      Picker Control의 항목갯수 (행 갯수)
  6) UIPickerViewDelegate 클래스의 " required" 메소스 추가
   - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)
component 
      Picker Control의 각 항목의 내용 입력     
  7) 헤더 파일에, <UIPickerViewDataSource,UIPickerViewDelegate> 에서 상속됨을 표시
  8) View 화면에서 "Picker View"를 File's Owner로 Drag & Drop하여, dataSource와 delegate를 연결

3. 출력 데이터를 적용
 1) 헤더파일 멤버변수 추가
    - NSMutableArray *pickData; 추가
 2) 배열 초기값 입력 
   - (void)viewDidLoad 함수에서 pickData 
   - NSMutableArray 초기화 방법 적용
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
  pickData = [[NSMutableArray alloc]init];
 [pickData addObject:@"1등입니다."];
 [pickData addObject:@"2등입니다."];
 [pickData addObject:@"3등입니다."];
 [pickData addObject:@"4등입니다."];
 [pickData addObject:@"5등입니다."];
 [pickData addObject:@"6등입니다."];
 [pickData addObject:@"7등입니다."];
 3) 선택된 항목을 Label에 출력하기 
  - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
  //NSLog(@"value : %i", row);
 selectedText.text = [pickData objectAtIndex:row];
}

4. Source 및 해더 파일

@interface PickerTestViewController: UIViewController {
IBOutlet UIPickerView *dataPicker;
IBOutlet UILabel *selectedText;

NSMutableArray *pickData;

}
@end


...
 
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
pickData = [[NSMutableArray alloc]init];
[pickData addObject:@"1등입니다."];
[pickData addObject:@"2등입니다."];
[pickData addObject:@"3등입니다."];
[pickData addObject:@"4등입니다."];
[pickData addObject:@"5등입니다."];
[pickData addObject:@"6등입니다."];
[pickData addObject:@"7등입니다."];

 
[super viewDidLoad];
}

...

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return [pickData count];
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return [pickData objectAtIndex:row];
// return @"피커뷰 입니다.";
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
NSLog(@"value:%i",row);
selectedText.text = [pickData objectAtIndex:row];
}


- (void)dealloc {
[pickData release]; 
[dataPickerrelease]; 
[selectedText release]; 


[super dealloc];
}

...

 

TRACE 적용하기

Source 중에 NSLog(@"value:%i",row); 와 같이 출력하고자 하는 Text를 문법에 맞춰 코딩하고, 실행시 Xcode의 gdb버튼을 클릭하면, 해당 소스가 실행될때, gdb 실행윈도우에 문법에 해당하는 Text가 출력됨.


[Question]
pickData 이넘을 release 해주는 것인 맞는 것인가요?
Posted by 꿈을펼쳐라
,