开发者

warning at the end of UIPickerViewDelegate method

开发者 https://www.devze.com 2023-03-27 09:44 出处:网络
I use pickerview in my application and in .h file i have written code as follows @interface t开发者_StackOverflow中文版weetViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDele

I use pickerview in my application and in .h file i have written code as follows

@interface t开发者_StackOverflow中文版weetViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDelegate> {
    NSArray* activities;
    NSArray* feelings;
}
@property (nonatomic,retain) NSArray *activities;
@property (nonatomic,retain)NSArray *fellings;

and i have written code in my.h file for UIPickerviewDatasource as follows which works fine

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

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

but the following code of UIPickerViewDelegate shows me warning msg at the closing brace of the method

- (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 suggest me how i can solve the problem...


This is because the compiler is not sure you're going to return something.
Your method does the following:

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

In praxis, this will always return a value. However, the compiler checks your code fully theoretically and finds out that if case would be any other integer than 0 and 1, your method doesn't return.

Bottom line is that you need to add return nil; after your switch-block =), so your method will always return (nil will be interpreted as @"" in this case).

0

精彩评论

暂无评论...
验证码 换一张
取 消