Каков синоним этой функции в obj-c? - PullRequest
0 голосов
/ 17 ноября 2010

Привет всем Каков синоним этой функции в obj-c?

void FuncOne (int a, int b);

Спасибо

Ответы [ 3 ]

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

Краткий ответ:

void FuncOne (int a , int b);

Любой действительный код C также является допустимым Objective-C. В качестве бонуса допустим любой действительный код C ++ и Objective-C ++.

Для более длинного ответа я хотел бы использовать лучший пример функции, используя в качестве примера класс Java:

public class Rect {
    public void setColor(int color, boolean animated);
}

Этот класс и его метод в надлежащем Objective-C будут:

@interface Rect : NSObject {
}

-(void)setColor:(int)color animated:(BOOL)animated;

@end

Я уверен, что вы можете выяснить преобразование, оно достаточно хорошо отображается от 1 до 1. В мире Objective-C вы должны позаботиться о том, чтобы каждый аргумент метода был назван. Это может показаться незначительным, но есть возможность улучшить читабельность вашего кода в 1000 раз! Возьмем для примера приведенный выше пример на Java:

myRect.setColor(Color.RED, true);

Что означает второй аргумент? Включает ли он цвет, сигнализирует ли он о том, что цвет имеет альфа-компонент, который должен соблюдаться (верно для большинства API JavaME), или что цвет должен быть установлен анимированным способом? Вы не можете быть уверены, если не посмотрите в документации.

Для правильного Objective-C у вас никогда не было этой проблемы:

[myRect setColor:RED animated:YES];

Вы должны быть довольно глупы, чтобы не понимать, что происходит, просто читая код как есть.

Ваша самая сложная задача в изучении Objective-C не будет заключаться в том, чтобы научиться конвертировать все, что вы знаете сейчас 1: 1, в Objective-C. Ваша самая трудная задача будет заключаться в изучении мышления Objective-C, которое позволит вам быть намного более продуктивным.

1 голос
/ 17 ноября 2010

Если вы хотите использовать «автономную» функцию в коде target-c, то вы просто должны использовать обычную функцию c, как вы написали в своем вопросе.

Если вы спросите о методах класса, то их синтаксис будет следующим (имя параметра необязательно):

// Instance method
- (ReturnType) methodName:(ParameterType1)parameter1 parameterName2:(ParameterType2)parameter2;
// Class method
+ (ReturnType) methodName:(ParameterType1)parameter1 parameterName2:(ParameterType2)parameter2;
0 голосов
/ 17 ноября 2010
- (void)funcOne:(int)a :(int)b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...