Add RKLog helper for displaying detailed key-value validation failure information. closes #750

This commit is contained in:
Blake Watters
2012-05-21 12:58:44 -04:00
parent dcef1b1c16
commit 5cecb58c23
3 changed files with 40 additions and 1 deletions

View File

@@ -127,3 +127,35 @@ int RKLogLevelForString(NSString *logLevel, NSString *envVarName)
return -1;
}
}
void RKLogValidationError(NSError *validationError) {
if ([[validationError domain] isEqualToString:@"NSCocoaErrorDomain"]) {
NSDictionary *userInfo = [validationError userInfo];
NSArray *errors = [userInfo valueForKey:@"NSDetailedErrors"];
if (errors) {
for (NSError *detailedError in errors) {
NSDictionary *subUserInfo = [detailedError userInfo];
RKLogError(@"Core Data Save Error\n \
NSLocalizedDescription:\t\t%@\n \
NSValidationErrorKey:\t\t\t%@\n \
NSValidationErrorPredicate:\t%@\n \
NSValidationErrorObject:\n%@\n",
[subUserInfo valueForKey:@"NSLocalizedDescription"],
[subUserInfo valueForKey:@"NSValidationErrorKey"],
[subUserInfo valueForKey:@"NSValidationErrorPredicate"],
[subUserInfo valueForKey:@"NSValidationErrorObject"]);
}
}
else {
RKLogError(@"Core Data Save Error\n \
NSLocalizedDescription:\t\t%@\n \
NSValidationErrorKey:\t\t\t%@\n \
NSValidationErrorPredicate:\t%@\n \
NSValidationErrorObject:\n%@\n",
[userInfo valueForKey:@"NSLocalizedDescription"],
[userInfo valueForKey:@"NSValidationErrorKey"],
[userInfo valueForKey:@"NSValidationErrorPredicate"],
[userInfo valueForKey:@"NSValidationErrorObject"]);
}
}
}