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

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

person iroosma    schedule 25.06.2012    source источник


Ответы (1)


Вы начали этот метод с:

void displayDev (NSInteger dayNum)

С таким синтаксисом вы фактически объявляете это как функцию C, а не как функцию Objective-C. Вы не можете получить доступ к своим выходам или другим переменным экземпляра в функции C. Вы можете изменить его на метод экземпляра Objective-C, изменив первую строку на:

- (void)displayDev:(NSInteger)dayNum
person dmur    schedule 25.06.2012
comment
Именно то, что мне было нужно. Большое спасибо! - person iroosma; 25.06.2012