/ KeychainCircle / KCError.m
KCError.m
1 // 2 // KCError.m 3 // Security 4 // 5 // 6 7 #import "KCError.h" 8 9 static NSString* KCErrorDomain = @"com.apple.security.keychaincircle"; 10 11 12 @implementation NSError(KCJoiningError) 13 14 + (nonnull instancetype) errorWithJoiningError:(KCJoiningError) code 15 format:(NSString*) format 16 arguments:(va_list) va { 17 return [[NSError alloc] initWithJoiningError:code 18 userInfo:@{NSLocalizedDescriptionKey:[[NSString alloc] initWithFormat:format arguments:va]}]; 19 20 } 21 22 + (nonnull instancetype) errorWithJoiningError:(KCJoiningError) code 23 format:(NSString*) format, ... { 24 25 va_list va; 26 va_start(va, format); 27 NSError* result = [NSError errorWithJoiningError:code format:format arguments:va]; 28 va_end(va); 29 30 return result; 31 32 } 33 - (nonnull instancetype) initWithJoiningError:(KCJoiningError) code 34 userInfo:(nonnull NSDictionary *)dict { 35 return [self initWithDomain:KCErrorDomain code:code userInfo:dict]; 36 } 37 @end 38 39 void KCJoiningErrorCreate(KCJoiningError code, NSError** error, NSString* format, ...) { 40 if (error && (*error == nil)) { 41 va_list va; 42 va_start(va, format); 43 *error = [NSError errorWithJoiningError:code format:format arguments:va]; 44 va_end(va); 45 } 46 } 47