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它.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |