Получение результатов метода для размещения в другом файле .m

#objective-c #methods #int

#objective-c #методы #int

Вопрос:

Это может показаться простым, но, пожалуйста, я новичок. У меня есть простая программа, в которой мне нужна помощь в решении этой проблемы. Я хотел бы получить результаты в методе и поместить их в другой файл .m. Вот что у меня есть:

Проверьте recognizer .m ….

 -(int)good {

    if (fieldGoal == NO amp;amp; fieldGoalPosition == 0) {
        return 0;
    }

    else if (fieldGoal == YES amp;amp; fieldGoalPosition == 1) {
        return 1;
    }

    else if (fieldGoal == NO amp;amp; fieldGoalPosition == 2) {
        return 2;
    }

...        
}
  

Тогда у меня есть это в моем ViewController .m:

 fieldGoal1 = [CheckRecognizer good];
  

У меня есть #import «CheckRecognizer.h» в моем файле, но он не распознает «хороший» метод. Не могли бы вы, пожалуйста, помочь? Я перепробовал все, например, присвоил имя переменной для доступа в другом файле .m, но безуспешно. Спасибо.

Комментарии:

1. Прежде всего, ваш метод возвращает значения, основанные на некоторых существующих значениях. Являются ли они переменными экземпляра или статическими переменными? Если они являются переменными экземпляра, simple alloc-init-good выдаст вам 0 как NO и 0 будут значениями по умолчанию fieldGoal и fieldGoalPosition соответственно.

Ответ №1:

либо создайте хороший метод класса, (int) good { … }

или вызовите good для экземпляра CheckRecognizer , [[[CheckRecognizer alloc] init] good];

Я настоятельно рекомендую вам пройти через http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html .

Ответ №2:

Вы объявили свой метод как метод экземпляра, но вызвали его как метод класса. Вам необходимо создать экземпляр:

 CheckRecognizer *recognizer = [CheckRecognizer alloc] init];
  

И затем используйте его:

 int result = [recognizer good];
  

Вам также следует придумать название метода получше, чем «good».

Ответ №3:

fieldGoal1 = [[[Выделение CheckRecognizer]инициализация]авторелиз] хорошо];

Теперь, если это правильный способ выполнения чего-либо, это совершенно другой вопрос 😉