Необъявленный идентификатор для полей пользовательского интерфейса в пользовательской функции
Я создал пользовательскую функцию, показанную ниже, с кодом, скопированным из события нажатия кнопки в моем файле.m. Код работал нормально, пока я не скопировал его в мою функцию displayDev. Последние три строки в этом коде дают мне ошибку "Использование необъявленного идентификатора". Может кто-нибудь помочь мне выяснить, почему fullVerseLabel.text, VerseField.text и InterpretationField.text отображаются как необъявленные идентификаторы? Также ниже мой код.h, где я объявил эти поля пользовательского интерфейса.
Любая помощь, которую вы можете оказать, будет принята с благодарностью. Спасибо!
void displayDev (NSInteger dayNum)
{ NSString *plistFile = [[NSBundle mainBundle] pathForResource:@"Property List" ofType:@"plist"];
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:plistFile];
NSString *bookString = [[dict objectForKey:[NSString stringWithFormat:@"Day %d", dayNum]] objectForKey:@"Book"];
NSString *chapterString = [[dict objectForKey:[NSString stringWithFormat:@"Day %d", dayNum]] objectForKey:@"Chapter#"];
NSString *verseString = [[dict objectForKey:[NSString stringWithFormat:@"Day %d", dayNum]] objectForKey:@"Verse#"];
NSString *fullVerseString = [bookString stringByAppendingString:@" "];
fullVerseString = [fullVerseString stringByAppendingString:chapterString];
fullVerseString = [fullVerseString stringByAppendingString:@":"];
fullVerseString = [fullVerseString stringByAppendingString:verseString];
fullVerseLabel.text = fullVerseString;
VerseField.text = [dict objectForKey:[NSString stringWithFormat:@"Day %d", dayNum]objectForKey:@"Verse"];
InterpretationField.text = [dict objectForKey:[NSString stringWithFormat:@"Day %d", dayNum] objectForKey:@"Interpretation"];
currentlyViewing = dayNum;
}
У меня есть переменные, объявленные в моем.h файле и связанные с моей раскадровкой.
@interface FirstViewController : UIViewController
{ IBOutlet UILabel *fullVerseLabel;
IBOutlet UITextView *VerseField;
IBOutlet UITextView *InterpretationField;
IBOutlet UITextField *TextField;
}
1 ответ
Вы начали этот метод с:
void displayDev (NSInteger dayNum)
С этим синтаксисом вы фактически объявляете это как функцию C, а не Objective-C. Вы не можете получить доступ к своим выходам или другим переменным экземпляра в функции C. Вы можете изменить его на метод экземпляра Objective C, изменив первую строку на:
- (void)displayDev:(NSInteger)dayNum