DDNumber.m.svn-base
上传用户:kc0325
上传日期:2020-06-20
资源大小:204k
文件大小:1k
源码类别:

iPhone

开发平台:

Objective-C

  1. #import "DDNumber.h"
  2. @implementation NSNumber (DDNumber)
  3. + (BOOL)parseString:(NSString *)str intoSInt64:(SInt64 *)pNum
  4. {
  5. errno = 0;
  6. #if __LP64__
  7. // long = 64 bit
  8. *pNum = strtol([str UTF8String], NULL, 10);
  9. #else
  10. // long = 32 bit
  11. // long long = 64 bit
  12. *pNum = strtoll([str UTF8String], NULL, 10);
  13. #endif
  14. if(errno != 0)
  15. return NO;
  16. else
  17. return YES;
  18. }
  19. + (BOOL)parseString:(NSString *)str intoUInt64:(UInt64 *)pNum
  20. {
  21. errno = 0;
  22. #if __LP64__
  23. // unsigned long = 64 bit
  24. *pNum = strtoul([str UTF8String], NULL, 10);
  25. #else
  26. // unsigned long = 32 bit
  27. // unsigned long long = 64 bit
  28. *pNum = strtoull([str UTF8String], NULL, 10);
  29. #endif
  30. if(errno != 0)
  31. return NO;
  32. else
  33. return YES;
  34. }
  35. + (BOOL)parseString:(NSString *)str intoNSInteger:(NSInteger *)pNum
  36. {
  37. errno = 0;
  38. // On LP64, NSInteger = long = 64 bit
  39. // Otherwise, NSInteger = int = long = 32 bit
  40. *pNum = strtol([str UTF8String], NULL, 10);
  41. if(errno != 0)
  42. return NO;
  43. else
  44. return YES;
  45. }
  46. + (BOOL)parseString:(NSString *)str intoNSUInteger:(NSUInteger *)pNum
  47. {
  48. errno = 0;
  49. // On LP64, NSUInteger = unsigned long = 64 bit
  50. // Otherwise, NSUInteger = unsigned int = unsigned long = 32 bit
  51. *pNum = strtoul([str UTF8String], NULL, 10);
  52. if(errno != 0)
  53. return NO;
  54. else
  55. return YES;
  56. }
  57. @end