質問

例えばのでようvalueインスタンスにNSIntegerメッセージを渡すとき

それはEXC_BAD_ACCESSを引き起こし[a value]ます。

それでは、どのようNSIntegerintへ変換するのですか?

それは、関連するわずかな数のなら<32が使用されます。

役に立ちましたか?

解決

のTaダます:

NSInteger myInteger = 42;
int myInt = (int) myInteger;

NSIntegerは32/64ビットのint以外の何ものでもありません。

(それはあなたが実行しているものをOS /プラットフォームに基づいて適切なサイズを使用します)

他のヒント

このインラインを行いたい場合は、

、ちょうどNSUIntegerNSIntegerまたはintをキャストします:

int i = -1;
NSUInteger row = 100;
i > row // true, since the signed int is implicitly converted to an unsigned int
i > (int)row // false

私はあなたがNSIntegerintを変換する必要がある状況についてはよく分からない。

NSIntegerはただのtypedefです。

NSInteger 独立して、あなたが32ビットまたは64ビットシステム用に構築されているかどうかの整数を記述するために使用ます。

#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64 
typedef long NSInteger;
#else
typedef int NSInteger;
#endif

あなたはそれを変換せずにNSIntegerを使用する任意の場所をint使用することができます。

新しい変数に渡していないため代わりに、32ビットの64-ビット、簡単な方法でコンパイルするときに

一般UIsegmentedControlで使用される、「エラー」は(int型)のを追加し、このヒントを使用するようにされて表示されます。

[_monChiffre setUnite:(int)[_valUnites selectedSegmentIndex]];

の代わりに:

[_monChiffre setUnite:[_valUnites selectedSegmentIndex]];
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top