首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在UIPickerViewDelegate方法的末尾显示警告消息

在UIPickerViewDelegate方法的末尾显示警告消息
EN

Stack Overflow用户
提问于 2011-08-11 19:49:37
回答 2查看 581关注 0票数 1

我已经在我的应用程序中创建了一个选择器视图,并为它在我的.h文件中创建了两个组件,代码如下

代码语言:javascript
复制
@interface tweetViewController : UIViewController<UIPickerViewDataSource ,UIPickerViewDelegate> {

    NSArray *activities;
    NSArray *feelings;

}
@property(nonatomic,retain) NSArray *activities;
@property(nonatomic,retain) NSArray *feelings;
@end

之后,在我的.m文件中,我为UIPickerViewDataSource和UIPickerViewDelegate实现了强制方法,但是UIPickerViewDatasource的两个强制方法都工作得很好,并且它的代码是

代码语言:javascript
复制
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
        return [activities count];
    }
    else
    {
        return [feelings count];
    }
} 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];
            break;
        case 1:
            return [feelings objectAtIndex:row];
            break;
    }

}

告诉我为什么会出现警告?

EN

回答 2

Stack Overflow用户

发布于 2011-08-11 20:03:40

警告“控制可能到达非空函数的末尾”意思是说方法没有返回任何东西,因为该方法有一些返回值。

代码语言:javascript
复制
    - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
    {
        NSString *strToReturn = @"";
        switch (component) {
            case 0:
                strToReturn = [activities objectAtIndex:row];
                break;
            case 1:
                strToReturn = [feelings objectAtIndex:row];
            break;
        }
        return strToReturn;
    }

如上所述修改您的代码,警告将不会再激怒您。

票数 1
EN

Stack Overflow用户

发布于 2011-08-11 20:02:55

代码语言:javascript
复制
//numberOfRowsInComponent must return NSInteger value

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    if (component==0) {
        return [activities count];//then wont execute feelings count
    }//if loop failed then ur feeling count

    return [feelings count];
}

//here u can remove else loop with same meaning with your context 

对于titleForRow方法,至少在默认情况下必须返回nsstring

因此为某些字符串指定默认大小写

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

https://stackoverflow.com/questions/7025309

复制
相关文章

相似问题

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