2012-03-13 2 views
1

다음 코드를 작성했으며 어떤 이유로 picerView에 ???? 배열 대신 표시해야합니다.이상한 문자열 텍스트가 UIPickerView 내용에 나타납니다.

배열이 헤더에 정의되었으며 dataSource가보기 컨트롤러로 설정되었습니다.

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    arrayContext = [[NSMutableArray alloc] init]; 
    [arrayContext addObject:@"is"]; 
    [arrayContext addObject:@"wants"]; 
    [arrayContext addObject:@"loves"]; 
    [arrayContext addObject:@"hates"]; 
    [arrayContext addObject:@"enjoyed"]; 
    [arrayContext addObject:@"liked"]; 
    [arrayContext addObject:@"likes"]; 

    [pickerView selectRow:1 inComponent:0 animated:NO]; 
} 

- (void)viewDidUnload 
{ 
    [textField release]; 
    textField = nil; 
    [pickerView release]; 
    pickerView = nil; 
    [arrayContext release]; 
    arrayContext = nil; 
    [super viewDidUnload]; 

    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { 

    return 1; 
} 

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
    NSMutableDictionary *plistDict = [NSMutableDictionary dictionaryWithContentsOfFile:@"/var/mobile/Library/Preferences/com.ScotDev.QuickComPrefs.plist"]; 
    NSString *chosenContext = [NSString stringWithFormat:@"%@ ", [arrayContext objectAtIndex:row]]; 
    [plistDict setValue:chosenContext forKey:@"Context"]; 
}  

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { 

    return [arrayContext count]; 
} 

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row  forComponent:(NSInteger)component { 

    return [arrayContext objectAtIndex:row]; 
} 

답변

1
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component; 

delegate 방법이 아닌 dataSource 방법입니다. 코드가 작동하려면이 뷰 컨트롤러에 모두 연결되어 있어야합니다.

+0

어떻게 해결할 수 있습니까? – user1222053

+0

IB에서 dataSource를 연결하는 것과 같은 방법으로 delegate 프로퍼티를 연결하거나'viewDidLoad'에서'pickerView.delegate = self'를 사용할 수 있습니다. – NJones

관련 문제