Необъявленный идентификатор для полей пользовательского интерфейса в пользовательской функции

Я создал пользовательскую функцию, показанную ниже, с кодом, скопированным из события нажатия кнопки в моем файле.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
Другие вопросы по тегам