2016-03-24 2 views
0

Я пытаюсь изучить Objective-C и написал небольшую программу, но я не могу ее скомпилировать. Появляется следующее сообщение об ошибке.Необлученное исключение NSInvalidArgument Исключение не отвечает forwardInvocation

Uncaught исключение NSInvalidArgumentException, причина: GSFFIInvocation: Class 'ClassA' (класс) не реагирует на forwardInvocation: для 'Alloc'

Код следующим образом

#import <Foundation/Foundation.h> 

@interface ClassA : NSObject 
{ 
    int numA; 
} 
- (void) setNum: (int) n; 
- (int) getNum; 
- (void) print; 
@end 

@interface ClassB : ClassA 
{ 
    char charB; 
} 
- (void) setChar: (char) c; 
- (char) getChar; 
- (id) init; 
@end 

@implementation ClassA 
- (void) setNum: (int) n 
{ 
    numA = n; 
} 

- (int) getNum 
{ 
    return numA; 
} 
- (void) print 
{ 
    NSLog(@"ClassA num:%i ",numA); 
} 
@end 

@implementation ClassB 
- (void) setChar: (char) c 
{ 
    charB = c; 
} 

- (char) getChar 
{ 
    return charB; 
} 
- (void) print 
{ 
    NSLog(@"ClassB char:%c ", charB); 
    [super print]; 
} 
- (id) init 
{ 
    numA = 1; 
    charB = 'c'; 
    return self; 
} 
@end 

int main(int argc, char* argv[]) 
{ 
    NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; 
    ClassA* classA = [[ClassA alloc] init]; 

    [classA setNum: 10]; 
    //output: ClassA num: 10 
    [classA print]; 

    //polymorphism example 
    ClassA* classB = [[ClassB alloc] init]; 
    //prints: ClassB char: c ClassA num: 1 
    [classB print]; 

    [classA release]; 
    [classB release]; 

    [pool drain]; 
    return 0; 
} 

Что я делаю не так?

+1

Какая строка исключена? – Chris

ответ

1

Если вы не работаете с Xcode, важно правильно пометить свой вопрос.

Казалось бы, что реализация NSObject, что вы используете не реализует +alloc или среда выполнения не видит реализации указанного способа, вероятно, из-за проблем связывания.

I.e. что-то прикручивается или нестандартно в вашей установке.

Смежные вопросы