Есть несколько проблем с кодом, который вы разместили.
Прежде всего, соглашение в Cocoa Touch гласит, что имена классов используют верблюжий регистр и начинаются с заглавной буквы: MathClass
, , а не math_class
. Имена методов используют верблюжий регистр, и каждое ключевое слово начинается со строчной буквы. Если вы будете придерживаться соглашения об именах, другим людям будет легче понять ваш код, поэтому вам будет легче получить помощь, когда у вас возникнут проблемы.
Теперь в вашем math_class
классе вы объявили метод, подобный этому:
+ (double) add_function: (double) number_one: (double) number_two;
Но вы поставили пробелы и упустили пробелы необычным способом. Обычный способ написать его, сохранив одно и то же имя метода, выглядит следующим образом:
+ (double)add_function:(double)number_one :(double)number_two;
Имя этого метода: add_function::
, , а не add_function number_one:number_two:
(это то, что вы пытались назвать его).
У этого имени метода есть два ключевых слова. Первое ключевое слово add_function:
и принимает double
аргумент с именем number_one
. Второе ключевое слово просто :
и принимает аргумент double
с именем number_two
.
Вы могли бы вызвать этот метод так:
total = [math_class add_function:first_number :second_number];
Однако использование имени метода с ключевым словом просто :
почти всегда очень плохой стиль.
Есть много способов написать свой класс в хорошем стиле. Вот один из способов:
@interface MathClass : NSObject
+ (double)sumWithNumber:(double)firstNumber number:(double)secondNumber;
@end
@implementation MathClass
+ (double)sumWithNumber:(double)firstNumber number:(double)secondNumber {
return firstNumber + secondNumber;
}
@end
Когда метод используется в основном для его возвращаемого значения, а не для побочных эффектов, мы называем его после того, что он возвращает. Поэтому я назвал это sumWithNumber:number:
, потому что он возвращает сумму.
Имя метода имеет два ключевых слова. Первое ключевое слово sumWithNumber:
и принимает double
аргумент с именем firstNumber
. Второе ключевое слово - number:
и принимает double
аргумент с именем secondNumber
. Вы можете назвать это так:
total = [MathClass sumWithNumber:first_number number:second_number];