2011-08-12 61 views
1

我用pickerview在我的應用程序和.h文件中我寫的代碼如下警告在UIPickerViewDelegate方法結束

@interface tweetViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDelegate> { 
    NSArray* activities; 
    NSArray* feelings; 
} 
@property (nonatomic,retain) NSArray *activities; 
@property (nonatomic,retain)NSArray *fellings; 

,我已經寫在my.h文件代碼UIPickerviewDatasource如下其中工程細

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

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
    if(component==0) 
    { 
     return [activities count]; 
    } 
    else 
    { 
     return [feelings count]; 
    } 
} 

但UIPickerViewDelegate的下面的代碼顯示我在方法的右大括號警告味精

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    switch (component) { 
     case 0: 
      return [activities objectAtIndex:row]; 


     case 1: 
      return [feelings objectAtIndex:row]; 
    } 
} 

plz建議我如何解決問題...

+0

可能的重複http://stackoverflow.com/questions/7025309/shows-warning-msg-at-the-end-of-the-uipickerviewdelegate-method – Devang

回答

1

這是因爲編譯器不確定你會返回一些東西。
你的方法執行以下操作:

if case == 0: return [activities objectAtIndex:row]; 
if case == 1: return [activities objectAtIndex:row]; 

在實踐中,這將始終返回一個值。但是,編譯器會在理論上充分檢查代碼,並發現如果情況是除01之外的任何其他整數,那麼您的方法不會返回。

底線是,你需要你的switch - 塊=)後添加return nil;,所以你的方法將總是返回(nil將在此情況下,被解釋爲@"")。

+0

thanx它真的工作....... – iPhone