Я пытаюсь изучить 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;
}
Что я делаю не так?
Какая строка исключена? – Chris