我在我的应用程序中使用了pickerview,在.h文件中我编写了如下代码
@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];
}
}请建议我如何解决这个问题。
发布于 2011-08-12 17:28:04
这是因为编译器不确定你会返回什么。
您的方法执行以下操作:
if case == 0: return [activities objectAtIndex:row];
if case == 1: return [activities objectAtIndex:row];在实践中,这将始终返回一个值。但是,编译器从理论上全面检查您的代码,并发现如果case是除0和1之外的任何其他整数,则您的方法不会返回。
底线是您需要在switch后添加return nil; (-block =),这样您的方法将始终返回(在本例中,nil将被解释为@"" )。
https://stackoverflow.com/questions/7038091
复制相似问题