本地化失败原因返回 null

Posted

技术标签:

【中文标题】本地化失败原因返回 null【英文标题】:localizedFailureReason returns null 【发布时间】:2015-03-17 12:47:07 【问题描述】:

出于某种原因,我需要显示错误本地化失败原因。我收到 NSError

Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Unexpected end of file while parsing object.) UserInfo=0x178a72b80 NSDebugDescription=Unexpected end of file while parsing object.

当我尝试登录时

[error localizedFailureReason]

为此我得到了空值。我可以知道是什么原因造成的吗?我只是得到

The operation couldn’t be completed. (Cocoa error 3840.)

[error localizedDescription]  only

下面是我完整的方法代码:

+(NSDictionary *)insertErrorIntoFormat:(NSError*)error

NSLog(@"1.%@",[error localizedDescription]);
NSLog(@"2.%@",[error description]);
NSLog(@"3.%@",[self getCurrentDateTimeString]);

NSDictionary *threat = [NSDictionary dictionaryWithObjectsAndKeys:
                        [self getCurrentDateTimeString], kTimestamp,
                        [error localizedDescription], @"logs",
                        [error localizedFailureReason], @"reason",
                        nil];


   return threat;

【问题讨论】:

【参考方案1】:

NSError 不需要有失败原因字符串。返回nil 是完全有效的。您需要在将返回值添加到 NSDictionary 或 NSArray 之前检查返回值,因为这些数据结构不能包含 nil 值。

【讨论】:

以上是关于本地化失败原因返回 null的主要内容,如果未能解决你的问题,请参考以下文章

真实手机访问本地电脑网站失败的原因

ios 调用writeToFile将图片保存到本地一直失败的解决方案

JSON 序列化从本地文件返回 null

SQL Server 复制本地订阅属性返回“无法将值‘null’应用于属性 ServerInstance:值不能为空。”

从googlecdn加载jQuery,但如果失败,则返回本地

在本地上运行可以,将JAR包放在HADOOP平台上运行的时候执行失败是啥原因?