当我分配 NSError userInfo 来设置 NSDictionary 时,为啥我的应用程序会崩溃?
Posted
技术标签:
【中文标题】当我分配 NSError userInfo 来设置 NSDictionary 时,为啥我的应用程序会崩溃?【英文标题】:Why is my app crashing when I allocate NSError userInfo to set a NSDictionary?当我分配 NSError userInfo 来设置 NSDictionary 时,为什么我的应用程序会崩溃? 【发布时间】:2012-04-05 01:21:17 【问题描述】: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】:IIRC NSUnderlyingErrorKey
应该是 NSError
的另一个实例。
来自文档:
用户信息字典有时可以包含另一个
NSError
对象 表示错误基础子系统中的错误 由包含NSError
表示。你可以查询这个底层 错误对象获取有关原因的更具体信息 错误。您可以使用
NSUnderlyingErrorKey
字典键访问底层错误对象。
【讨论】:
此致,感谢您的热心回答。以上是关于当我分配 NSError userInfo 来设置 NSDictionary 时,为啥我的应用程序会崩溃?的主要内容,如果未能解决你的问题,请参考以下文章
无法在 AppDelegate coredata,Swift 2 中使用(域,代码,userInfo)调用类型“NSError”的初始化程序