首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIPickerViewDelegate方法结束时的警告

UIPickerViewDelegate方法结束时的警告
EN

Stack Overflow用户
提问于 2011-08-12 17:24:05
回答 1查看 118关注 0票数 1

我在我的应用程序中使用了pickerview,在.h文件中我编写了如下代码

代码语言:javascript
复制
@interface tweetViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDelegate> {
    NSArray* activities;
    NSArray* feelings;
}
@property (nonatomic,retain) NSArray *activities;
@property (nonatomic,retain)NSArray *fellings;

我已经在my.h文件中为UIPickerviewDatasource编写了代码,如下所示,运行良好

代码语言:javascript
复制
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 2;
}

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

但是下面的UIPickerViewDelegate代码向我展示了该方法的右括号中的警告消息

代码语言:javascript
复制
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    switch (component) {
        case 0:
            return [activities objectAtIndex:row];


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

请建议我如何解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2011-08-12 17:28:04

这是因为编译器不确定你会返回什么。

您的方法执行以下操作:

代码语言:javascript
复制
if case == 0: return [activities objectAtIndex:row];
if case == 1: return [activities objectAtIndex:row];

在实践中,这将始终返回一个值。但是,编译器从理论上全面检查您的代码,并发现如果case是除01之外的任何其他整数,则您的方法不会返回。

底线是您需要在switch后添加return nil; (-block =),这样您的方法将始终返回(在本例中,nil将被解释为@"" )。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7038091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档