Я получаю Сбой с кодом выхода 1 ошибка в xcode - PullRequest
1 голос
/ 23 октября 2010

Это моя первая попытка использовать программу Objective-c для какао, поэтому я понятия не имею, почему она дает мне такую ​​ошибку.Я действительно не понимаю страницу результатов сборки.

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];

}

1 Ответ

4 голосов
/ 23 октября 2010

В main.m вы хотите импортировать myClass.h, а не myClass.m

В заголовочном файле есть необходимые объявления.Если вы импортируете реализацию, вы реализуете эти методы дважды, отсюда и дублирующие символы.

Еще один совет, который вы узнаете, когда вы говорите [[myClass alloc] init], вы получаете указатель на объект, а не на класс.Поэтому вы должны называть это объектом, чтобы эта концепция была укреплена для вас.Поправка прямо сейчас поможет вам в этом, если вы углубитесь в это.

(кстати, здесь также есть несколько проблем с соглашениями об именах)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...