Проблема в том, что вы не выделяете возвращаемое значение вашего метода - (ComplexNumber *) в квадрате.
Вы делаете это правильно при создании testNumber.У вас есть ..
ComplexNumber *d;
и
ComplexNumber *testNumber = [[ComplexNumber alloc] init];
они должны следовать одному и тому же шаблону (это общий шаблон для создания нового экземпляра объекта).
Возможно, вы захотите определить пользовательский инициализатор: -
- (id)initWithReal:(double)a andImaginary:(double)b {
self = [super init];
if(self){
real = a;
imaginary = b;
}
return self;
}
, а затем вместо
ComplexNumber *testNumber = [[ComplexNumber alloc] init];
[testNumber setReal:55.0 andImaginary:30.0];
Вы можете использовать
ComplexNumber *testNumber = [[ComplexNumber alloc] initWithReal:55.0 andImaginary:30.0];
В качестве sidenote:
self-> real = a;такой же, как реальный = а.Поскольку нет необходимости -> вы не должны его использовать.Если вам нужен доступ к переменным из другого объекта, вы используете методы getter и setter.
О да, и как уже указывалось в других.Неверный спецификатор формата в NSLog.