Как извлечь статический int из метода после его многократного вызова - PullRequest
2 голосов
/ 04 октября 2011

Для моего независимого изучения уровня Objective-C моего начинающего меня попросили добавить счетчик к классу, чтобы каждый раз, когда в нем использовался метод, он получал ++.Однако я неверно истолковал это как «Каждый раз, когда метод вызывается, ++».Поняв, как сделать то, что от меня требовалось, я подумал, как создать метод, который будет возвращать счетчик в дополнение к тому, что метод вызывался для возврата.Если бы я использовал статический int в дополнение к переменной ++;как при каждом вызове метода извлечь это значение переменной в моей основной программе?

Пример кода из комментария:

-(Fraction *) add: (Fraction *) f {
    static int fractaddcount;
    fractaddcount++;
    Fraction *result = [[Fraction alloc] init];
    result.numerator = numerator * f.denominator + denominator * f.numerator;
    result.denominator = denominator * f.denominator;
    return result;
}

1 Ответ

1 голос
/ 04 октября 2011

Сделать fractaddcount переменной экземпляра и инициализировать ее в 0 в методе init.Затем к нему могут обращаться другие методы класса.

Кроме того, если вы сделаете это property, другие классы смогут получить к нему доступ.Вы даже можете сделать property только для чтения в файле .h и для чтения / записи в файле .m (расширение класса).

Пример:
в .h:

@property (non atomic, readonly, assign) int fractaddcount;

дюймочищаются до нуля (0).

fractaddcount = 0;

в вашем коде:

self.fractaddcount = self.fractaddcount + 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...