разделяет статическую функцию в объективе iphone? - PullRequest
1 голос
/ 17 сентября 2010

Мне нужно рассчитать цену, основываясь на некоторых бизнес-правилах, и я не хочу дублировать это на нескольких ViewControllers.Исходя из мира .Net я бы использовал статический метод для класса, чтобы сделать это.Что такое аналогичное решение в Objective-C?

Ответы [ 2 ]

3 голосов
/ 17 сентября 2010

Метод класса, скорее всего - т.е. функция в интерфейсе, объявленная с + в начале.

@implementation PriceCalculator

+ (float)calculatePrice:(float)param1 {
    return param1*4.0;
}

@end

(и аналогичный @interface в заголовочном файле)

который называется так:

price = [PriceCalculator calculatePrice:3.0];
1 голос
/ 17 сентября 2010

Если вам не нужно переопределять поведение в подклассах, вы можете просто написать функцию C, которая эквивалентна статическому методу в Java и C #.В противном случае, сделайте, как предложил Джозеф, и напишите метод класса.Вот его пример, переписанный как функция C:

float calculatePrice(float amount)
{
    return amount * 4.0;
}

Функция может быть объявлена ​​/ реализована в паре файлов .h / .m для одного из ваших классов, если это удобно, но вы также можете создатьотдельная пара .h / .m, которая просто содержит функции C, если хотите.

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