2012-04-05 5 views
0
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"Please, other format selected.", NSLocalizedDescriptionKey, @"This format is not available.", NSLocalizedFailureReasonErrorKey, @"The operation couldn't be completed.", NSUnderlyingErrorKey, self.URL, NSURLErrorKey, nil]; 

NSLog(@"dict:%@", dict); // no Crash 

NSError *error = [NSError errorWithDomain:@"testError" code:1 userInfo:dict];// crash 

なぜエラーオブジェクトを割り当てるときにクラッシュするのですか?ここでNSError userInfoを割り当ててNSDictionaryを設定すると、アプリがクラッシュするのはなぜですか?


クラッシュの詳細は以下のとおりです。

+[__NSCFConstantString objectForKey:]: unrecognized selector sent to class 0x3ebf5550 

答えて

3

はIIRC NSUnderlyingErrorKeyNSErrorの別のインスタンスであると考えられます。ドキュメントから

ユーザ情報辞書は時々含むNSErrorで表される誤差 の根底にあるサブシステムでエラーを表す別のNSErrorオブジェクト を含むことができます。この基本的な エラーオブジェクトを照会して、 のエラーの原因に関するより具体的な情報を取得することができます。

基本的なエラーオブジェクトには、NSUnderlyingErrorKey辞書キーを使用してアクセスします。

+0

本当にありがとうございました。 –

関連する問題