Исходя из фона Java, я предполагаю, что это ожидается. Мне бы очень хотелось узнать Objective-C и начать разработку приложений для Mac, но синтаксис просто убивает меня.
Например:
-(void) setNumerator: (int) n
{
numerator = n;
}
Что это за черта и почему в скобках следует пустое? Я никогда не видел void в скобках в C/С++, Java или С#. Почему у нас нет точки с запятой после (int) n? Но мы имеем его здесь:
-(void) setNumerator: (int) n;
И что с этим процессом alloc, init, release?
myFraction = [Fraction alloc];
myFraction = [myFraction init];
[myFraction release];
И почему он [myFraction release];
, а не myFraction = [myFraction release];
?
И наконец, что с символами @и что эта реализация эквивалентна Java?
@implementation Fraction
@end
В настоящее время я читаю Программирование в Objective C 2.0, и это просто разочаровывает изучение этого нового синтаксиса для кого-то в фоне Java.
ОБНОВЛЕНИЕ 1: После прочтения всех этих ответов и программирования в Objective C 2.0 немного дальше, все это начинает иметь смысл сейчас!
ОБНОВЛЕНИЕ 2: Спасибо за большой совет "поддержка-многоязычность". Мы можем объединить эти два утверждения в один так:
myFraction = [Fraction alloc];
myFraction = [myFraction init];
Может быть уменьшено до:
myFraction = [[Fraction alloc] init];