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.

Другие вопросы по тегам