/MapView/GTM/GTMNSNumber+64Bit.m

http://github.com/route-me/route-me · Objective C · 98 lines · 62 code · 19 blank · 17 comment · 2 complexity · 4d970e72dbac5d3272d21a50bf41e64c MD5 · raw file

  1. //
  2. // GTMNSNumber+64Bit.m
  3. //
  4. // Copyright 2009 Google Inc.
  5. //
  6. // Licensed under the Apache License, Version 2.0 (the "License"); you may not
  7. // use this file except in compliance with the License. You may obtain a copy
  8. // of the License at
  9. //
  10. // http://www.apache.org/licenses/LICENSE-2.0
  11. //
  12. // Unless required by applicable law or agreed to in writing, software
  13. // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  14. // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  15. // License for the specific language governing permissions and limitations under
  16. // the License.
  17. //
  18. #import "GTMNSNumber+64Bit.h"
  19. @implementation NSNumber (GTM64BitAdditions)
  20. + (NSNumber *)gtm_numberWithCGFloat:(CGFloat)value {
  21. return [[[[self class] alloc] gtm_initWithCGFloat:value] autorelease];
  22. }
  23. + (NSNumber *)gtm_numberWithInteger:(NSInteger)value {
  24. return [[[[self class] alloc] gtm_initWithInteger:value] autorelease];
  25. }
  26. + (NSNumber *)gtm_numberWithUnsignedInteger:(NSUInteger)value {
  27. return [[[[self class] alloc] gtm_initWithUnsignedInteger:value] autorelease];
  28. }
  29. #if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
  30. - (id)gtm_initWithCGFloat:(CGFloat)value {
  31. CFNumberRef numberRef = CFNumberCreate(NULL, kCFNumberCGFloatType, &value);
  32. return NSMakeCollectable(numberRef);
  33. }
  34. - (CGFloat)gtm_cgFloatValue {
  35. CGFloat value = 0;
  36. CFNumberGetValue((CFNumberRef)self, kCFNumberCGFloatType, &value);
  37. return value;
  38. }
  39. - (id)gtm_initWithInteger:(NSInteger)value {
  40. return [self initWithInteger:value];
  41. }
  42. - (NSInteger)gtm_integerValue {
  43. return [self integerValue];
  44. }
  45. - (id)gtm_initWithUnsignedInteger:(NSUInteger)value {
  46. return [self initWithUnsignedInteger:value];
  47. }
  48. - (NSUInteger)gtm_unsignedIntegerValue {
  49. return [self unsignedIntegerValue];
  50. }
  51. #else // MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
  52. - (id)gtm_initWithCGFloat:(CGFloat)value {
  53. #if defined(__LP64__) && __LP64__
  54. return [self initWithDouble:value];
  55. #else
  56. return [self initWithFloat:value];
  57. #endif // defined(__LP64__) && __LP64__
  58. }
  59. - (CGFloat)gtm_cgFloatValue {
  60. #if defined(__LP64__) && __LP64__
  61. return [self doubleValue];
  62. #else
  63. return [self floatValue];
  64. #endif // defined(__LP64__) && __LP64__
  65. }
  66. - (id)gtm_initWithInteger:(NSInteger)value {
  67. return [self initWithLong:value];
  68. }
  69. - (NSInteger)gtm_integerValue {
  70. return [self longValue];
  71. }
  72. - (id)gtm_initWithUnsignedInteger:(NSUInteger)value {
  73. return [self initWithUnsignedLong:value];
  74. }
  75. - (NSUInteger)gtm_unsignedIntegerValue {
  76. return [self unsignedLongValue];
  77. }
  78. #endif // MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
  79. @end