NSNumber についての私の理解では、特定のデータ型で NSNumber を作成する場合、同じデータ型の変数にアクセスする必要があります。例えば
NSNumber *myIntNumber = [NSNumber numberWithInt:1];
int myInt = [myIntNumber intValue];
NSNumber *myNSIntegerNumber = [NSNumber numberWithInteger:1];
NSInteger myInteger = [myIntNumber integerValue];
#define 変数を使用して NSNumber を作成する場合:
#define MY_DEFINE 6
それは私が次のことができないということですか
NSNumber *myNSIntegerNumber = [NSNumber numberWithInteger:MY_DEFINE];
NSInteger myInteger = [myIntNumber integerValue];
MY_DEFINE は NSInteger ではないためですか?
上記のコードが 32 ビット アプリで機能することはわかっていますが、64 ビット アプリでも機能することを確認しようとしています。そしてもちろん、物事を適切に行うことは決して悪いことではありません。
上記のことができない場合、MY_DEFINE を別の方法で定義して、後で NSInteger を取得するために使用できる NSNumber を作成できるようにする必要がありますか?