NSExceptionクラスをサブクラス化してCustomExceptionクラスを作成しました。Object-Cの "既存のスーパークラス"オブジェクトでサブクラスのオブジェクトを初期化する方法
@catchのコードで例外を検出するたびに、@Exceptionのパラメータとして渡されるNSExceptionのオブジェクトでCustomException(NSExceptionのサブクラス)のオブジェクトを初期化したいとします。私はCustomExceptionのinitメソッドにNSExceptionオブジェクトを渡すことでそれをやってみました。この
@catch (NSException * e) {
CustomException * ex1=[[CustomException alloc]initWithException:e errorCode:@"-11011" severity:1];
}
よう
何か。 は
//initializer for CustomException
-(id) initWithException:(id)originalException errorCode: (NSString *)errorCode severity:(NSInteger)errorSeverity{
//self = [super initWithName: name reason:@"" userInfo:nil];
self=originalException;
self.code=errorCode;
self.severity=errorSeverity;
return self;
}
このdoen't作品を(下記のように私は渡されたNSExceptionオブジェクトに[スーパーのinit]置き換え)!どうすればこれを達成できますか?事前に
おかげ
ありがとう!できます!これを以前に認識したはずです – TheBlackPearl
OOは、親コンクリート型を子型にダウンキャストすることをサポートしていません。しかし、この質問はコピーについて話しています。 C++では、次のようにこの質問に答えることができます:http://cpp.sh/3ar6m –