2010-10-23 126 views
1

这是我第一次尝试Objective-c可可程序,所以我不知道为什么它给了我这个错误。我真的不理解Build Result页面。我得到xcode退出代码1错误失败

myClass.h

#import <Cocoa/Cocoa.h> 


@interface myClass : NSObject { 
    int a; 
    int b; 
} 

-(void) setvara:(int)x; 
-(void) setvarb:(int)y; 
-(int) add; 

@end 

myClass.m

#import "myClass.h" 


@implementation myClass 

-(void)setvara:(int)x{ 
    a=x;  
} 

-(void)setvarb:(int)y{ 
    b=y;  
} 

-(int)add{ 
    return a+b; 
} 
@end 

的main.m

#import <Cocoa/Cocoa.h> 
#import <stdio.h> 
#import "myClass.m" 

int main(int argc, const char* argv[]) 
{ 
    myClass* class = [[myClass alloc]init]; 

    [class setvara:5]; 
    [class setvarb:6]; 

    printf("The sum: %d", [class add]); 

    [class release]; 

} 
+0

尝试导入'<基金会/ NSObject.h>',而忘记了cocoa.h – 2010-10-23 02:26:38

+0

当你得到一个编译失败,退出代码为1,通常您可以转到生成结果,然后单击具有几条水平线的小按钮。这会给你一些编译器输出,可能有助于追踪你的问题。 – Mat 2010-10-23 02:33:02

+0

谢谢。仍然在向我抛出错误。 – Adam 2010-10-23 02:35:44

回答

4

在你的main.m,要导入myClass.h,不是myClass的.m

头文件有decl你需要的药物。如果你导入实现,你正在实现这些方法两次,因此重复的符号。

你学习另一个技巧,当你说[[MyClass的页头]初始化],你得到的回复是一个指向对象,而不是一类。所以你应该把它称为一个对象,以便为你增强概念。现在直接了解这些差异将会对您有所帮助,因为您可以深入了解这一点。

(有一对夫妇的命名惯例的问题在这里也顺便说一句)

+0

好吧,这是一个类,但它创建一个对象? – Adam 2010-10-23 02:55:36

+0

是的,您向类发送'alloc'消息,并且返回的是指向对象的指针。然后你发送一个'init'消息给那个对象,并且你得到一个指向一个对象的指针,该对象现在被初始化并且可以使用。 – 2010-10-23 03:01:21

+0

嘿,我试了你的代码,我发现在main.m文件中,你正在导入myclass.m文件,它应该是myclass.h除了这个问题,你的代码只是工作好人。 – Radix 2010-10-23 09:02:13

相关问题