// 9.1.h未完全执行(Xcode的错误?)
#import <Foundation/Foundation.h>
@interface Complex : NSObject
{
double real;
double imaginary;
}
@property double real, imaginary;
-(void) print;
-(void) setReal: (double) andImaginary: (double) b;
-(Complex *) add: (Complex *) f;
@end
#import "9.1.h"
@implementation Complex
@synthesize real, imaginary;
-(void) print
{
NSLog(@ "%g + %gi ", real, imaginary);
}
-(void) setReal: (double) a andImaginary: (double) b
{
real = a;
imaginary = b;
}
-(Complex *) add: (Complex *) f
{
Complex *result = [[Complex alloc] init];
[result setReal: real + [f real] andImaginary: imaginary + [f imaginary]];
return result;
}
@end
在最后@end
线时,Xcode告诉我的实现是不完整的。该代码仍然按预期工作,但我是新手,担心我错过了一些东西。据我所知,它是完整的。有时候我觉得Xcode会挂在过去的错误上,但也许我只是失去了主意!
谢谢! -Andrew
难道是因为真正的参数没有在你的界面'有一个名字 - (无效)setReal:(双)andImaginary:(双)B;' – jjwchoy 2011-05-18 18:05:38
肯尼已经回答了这个问题,但我只是想要指出的是从一个像-add: – 2011-05-18 18:05:43
这样的方法返回一个自动释放对象是一种惯例,对于像这样的Value类型,将它们设置为不可变的是一种很好的做法,即在构造函数中设置实部和虚部以及不要提供任何方法来改变它们。您是否有特定的需求来修改一旦创建的复杂实例? – jjwchoy 2011-05-18 18:09:53