当我分配NSError userInfo来设置NSDictionary时,为什么我的应用程序崩溃了?

时间:2012-04-05 01:21:18

标签: iphone objective-c nsdictionary nserror

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

1 个答案:

答案 0 :(得分:3)

IIRC NSUnderlyingErrorKey应该是NSError的另一个实例。

来自文档:

  

用户信息字典有时可以包含另一个NSError对象   表示错误的子系统中的错误   由包含NSError表示。您可以查询此基础   错误对象获取有关原因的更具体信息   错误。

     

使用NSUnderlyingErrorKey字典键访问基础错误对象。