首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现不完整(xcode错误?)

实现不完整(xcode错误?)
EN

Stack Overflow用户
提问于 2011-05-18 18:01:01
回答 1查看 16.3K关注 0票数 5

// 9.1.h

代码语言:javascript
复制
#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
代码语言:javascript
复制
#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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-18 18:04:27

9.1.h中,你错过了一个'a‘。

代码语言:javascript
复制
-(void) setReal: (double) andImaginary: (double) b;
//                       ^ here

代码仍然有效,因为在Objective中,选择器的部分不能有名称。

代码语言:javascript
复制
-(id)initWithControlPoints:(float)c1x :(float)c1y :(float)c2x :(float)c2y
//                                    ^           ^           ^

这些方法称为

代码语言:javascript
复制
return [self initWithControlPoints:0.0f :0.0f :1.0f :1.0f];
//                                      ^     ^     ^

选择器的名称自然是@selector(initWithControlPoints::::)

因此,编译器将将您的声明解释为

代码语言:javascript
复制
-(void)setReal:(double)andImaginary
              :(double)b;

由于您尚未提供此-setReal::方法的实现,gcc将警告您

代码语言:javascript
复制
warning: incomplete implementation of class ‘Complex’
warning: method definition for ‘-setReal::’ not found

顺便说一句,如果你只想要一个复杂的值,但不需要它是一个目标-C类,就会有C99配合物

代码语言:javascript
复制
#include <complex.h>

...

double complex z = 5 + 6I;
double complex w = -4 + 2I;
z = z + w;
printf("%g + %gi\n", creal(z), cimag(z));
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6049033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档