KWFailure.m 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. //
  2. // Licensed under the terms in License.txt
  3. //
  4. // Copyright 2010 Allen Ding. All rights reserved.
  5. //
  6. #import "KWFailure.h"
  7. #import "KWCallSite.h"
  8. @implementation KWFailure
  9. #pragma mark - Initializing
  10. - (id)initWithCallSite:(KWCallSite *)aCallSite message:(NSString *)aMessage {
  11. self = [super init];
  12. if (self) {
  13. _callSite = aCallSite;
  14. _message = [aMessage copy];
  15. }
  16. return self;
  17. }
  18. - (id)initWithCallSite:(KWCallSite *)aCallSite format:(NSString *)format, ... {
  19. va_list argumentList;
  20. va_start(argumentList, format);
  21. NSString *aMessage = [[NSString alloc] initWithFormat:format arguments:argumentList];
  22. va_end(argumentList);
  23. return [self initWithCallSite:aCallSite message:aMessage];
  24. }
  25. + (id)failureWithCallSite:(KWCallSite *)aCallSite message:(NSString *)aMessage {
  26. return [[self alloc] initWithCallSite:aCallSite message:aMessage];
  27. }
  28. + (id)failureWithCallSite:(KWCallSite *)aCallSite format:(NSString *)format, ... {
  29. va_list argumentList;
  30. va_start(argumentList, format);
  31. NSString *message = [[NSString alloc] initWithFormat:format arguments:argumentList];
  32. va_end(argumentList);
  33. return [self failureWithCallSite:aCallSite message:message];
  34. }
  35. @end