2010-10-23 199 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

相關問題