加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – 使用未声明的标识符

发布时间:2020-12-14 17:49:00 所属栏目:百科 来源:网络整理
导读:我试图配置一个双组件选择器,并得到一些我已经注释掉的错误: 实施文件: #import "BIDDoubleComponentPickerViewController.h"@implementation BIDDoubleComponentPickerViewController@synthesize doublePicker;@synthesize fillingTypes;@synthesize brea
我试图配置一个双组件选择器,并得到一些我已经注释掉的错误:

实施文件:

#import "BIDDoubleComponentPickerViewController.h"

@implementation BIDDoubleComponentPickerViewController

@synthesize doublePicker;
@synthesize fillingTypes;
@synthesize breadTypes;

- (IBAction)buttonPressed:(id)sender
{
    NSInteger fillingRow =  [doublePicker selectedRowInComponent:kFillingComponent]; // Use of undeclared identifier 'kFillingComponent'
    NSInteger breadRow = [doublePicker selectedRowInComponent:kBreadComponent]; // Use of undeclared identifier 'kBreadComponent'

    NSString *bread = [breadTypes objectAtIndex:breadRow];
    NSString *filling = [fillingTypes objectAtIndex:fillingRow];

    NSString *message = [[NSString alloc]initWithFormat:@"Your %@ on %@ bread will be right up",filling,bread];

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Thank you for your order" 
                                                    message:message 
                                                   delegate:nil 
                                          cancelButtonTitle:@"Great!" 
                                          otherButtonTitles:nil];
    [alert show];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    NSArray *fillingArray = [[NSArray alloc] initWithObjects:@"Ham",@"Turkey",@"Peanut Butter",@"Tuna Salad",@"Chicken Salad",@"Roast Beef",@"Vegemite",nil];
    self.fillingTypes = fillingArray;

    NSArray *breadArray  = [[NSArray alloc] initWithObjects:@"White",@"Whole Wheat",@"Rye",@"Sourdough Bread",@"Seven Grain",nil];
    self.breadTypes = breadArray;
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
    self.doublePicker = nil;
    self.breadTypes = nil;
    self.fillingTypes = nil;
}




#pragma mark - View lifecycle


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

#pragma mark -
#pragma mark Picker Data Source Methods

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

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{
    if (component == kBreadComponent) { // Use of undeclared identifier 'kBreadComponent'
        return [self.breadTypes.count]; // Expected identifier
        return [self.fillingTypes objectAtIndex:row]; // Use of undeclared identifier 'row'
    }
}

#pragma mark Picker Delegate Methods
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{
    if (component == kBreadComponent) { // Use of undeclared identifier 'kBreadComponent'
        return [self.breadTypes objectAtIndex:row];
        return [self.fillingTypes objectAtIndex:row];
    }
}




@end

接口文件:

#import <UIKit/UIKit.h>

@interface BIDDoubleComponentPickerViewController : UIViewController
<UIPickerViewDelegate,UIPickerViewDataSource>

@property (strong,nonatomic) IBOutlet UIPickerView *doublePicker;
@property (strong,nonatomic) NSArray *fillingTypes;
@property (strong,nonatomic) NSArray *breadTypes;

- (IBAction)buttonPressed:(id)sender;


@end

解决方法

kBreadComponent和kFillingComponent未在任何地方声明.如果它们在头文件(.h)中声明,则需要#import它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读