根据我对 NSNumber 的理解,如果创建具有某种数据类型的 NSNumber,则需要访问具有相同数据类型的变量。例如
NSNumber *myIntNumber = [NSNumber numberWithInt:1];
int myInt = [myIntNumber intValue];
NSNumber *myNSIntegerNumber = [NSNumber numberWithInteger:1];
NSInteger myInteger = [myIntNumber integerValue];
如果 NSNumber 是使用 #define 变量创建的:
#define MY_DEFINE 6
这是否意味着我不能执行以下操作
NSNumber *myNSIntegerNumber = [NSNumber numberWithInteger:MY_DEFINE];
NSInteger myInteger = [myIntNumber integerValue];
因为 MY_DEFINE 不是 NSInteger?
我知道上面的代码可以在 32 位应用程序中运行,但我正在努力确保它可以在 64 位应用程序上运行,这对这些东西也更加挑剔。当然,正确地做事永远不会有坏处。
如果我不能执行上述操作,我是否应该尝试以不同的方式定义 MY_DEFINE,以便我可以使用它来创建一个 NSNumber,以后可以使用它来检索一个 NSInteger?