0
Objective-Cを学習しようとしていますが、小さなプログラムを作成しましたが、コンパイルできません。次のエラーメッセージが表示されます。未知の例外NSInvalidArgument例外がforwardInvocationに応答しません
キャッチされない例外NSInvalidArgumentException、理由:GSFFIInvocation:forwardInvocationに応答しないクラス 'にClassA'(クラス):次のように 'アロケーション'
コードがあるため、
#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