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

エラーオブジェクトを割り当てるときにクラッシュするのはなぜですか?


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

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

1 に答える 1

3

IIRCはのNSUnderlyingErrorKey別のインスタンスであると想定されていますNSError

ドキュメントから:

ユーザー情報ディクショナリにはNSError、包含によって表されるエラーの基礎となるサブシステムのエラーを表す別のオブジェクトが含まれる場合がありますNSError。この根本的なエラーオブジェクトをクエリして、エラーの原因に関するより具体的な情報を取得できます。

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

于 2012-04-05T01:46:24.670 に答える