localizedFailureReason возвращает ноль
Мне нужно показать ошибку localizedFailureReason по какой-то причине. Я получаю 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 ответ
Решение
Ошибка NSEr не обязана иметь строку причины сбоя. Это совершенно справедливо для возвращения nil
, Необходимо проверить возвращаемое значение, прежде чем добавить его в NSDictionary или NSArray, поскольку эти структуры данных не могут содержать значение nil.