2011-03-30 133 views
0

這似乎是一個有點愚蠢的問題要問,但自升級到Xcode 4,我使用的技術往往不起作用。我大約需要1的.xibiPhone Xcode 4 picker數據源

此前內設置一個選擇器的數據源,這是聲明在頭文件中的以下的情況下...

@interface testViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource> { 

    UIPickerView *singlePicker; 
    NSArray *pickerData; 

} 

@property (nonatomic,retain) IBOutlet UIPickerView *singlePicker; 
@property (nonatomic,retain) NSArray *pickerData; 

然後內設置數據源主要的「viewDidLoad中」,因爲這樣的......

- (void)viewDidLoad 
{ 
    NSArray *array = [[NSArray alloc] initWithObjects:@"Small", @"Medium", @"Long", nil]; 
    self.pickerData = array; 
    [array release]; 

    [super viewDidLoad]; 
} 

,然後將文件的所有者連接到選擇器,以及採摘的數據源,並委託網點文件的所有者,但是當我連接的數據源出口選擇器到文件的所有者我得到一個SIGABRT錯誤b在應用程序加載之前...

任何人都可以向我解釋這一點嗎?我不明白作爲我以前在Xcode 3中使用此方法編譯並在Xcode 4中正常運行的項目,但是我嘗試使用的任何新項目都不起作用?

非常感謝

山姆

回答

1

事實證明,你現在必須包括執行文件中的以下功能...

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { 
return 1; 
} 
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { 
return [pickerViewArray count]; 
} 
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { 
return [self.pickerViewArray objectAtIndex:row]; 
} 

它現在!