2011-08-12 32 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