[解決済み] NSIntegerとintの使い分けについて
2022-03-16 22:15:51
質問
を使用する必要があります。
NSInteger
iOS用に開発する場合、int型と比較するとどうでしょうか? Appleのサンプルコードでは
NSInteger
(または
NSUInteger
を使用すると、関数の引数として値を渡したり、関数から値を返したりすることができます。
- (NSInteger)someFunc;...
- (void)someFuncWithInt:(NSInteger)value;...
しかし、関数内では、ただ
int
を使用して値を追跡します。
for (int i; i < something; i++)
...
int something;
something += somethingElseThatsAnInt;
...
というのを読んだ(言われた)ことがある。
NSInteger
は、64ビット環境でも32ビット環境でも整数を参照する安全な方法であり、なぜ
int
を使用します。
解決方法は?
通常
NSInteger
コードがどのようなプロセッサアーキテクチャで実行されるかわからない場合、何らかの理由で可能な限り大きな整数型が必要になることがありますが、32ビットシステムでは単に
int
64ビットシステムでは
long
.
を使うことにこだわります。
NSInteger
の代わりに
int
/
long
特に必要でない限り
NSInteger
/
NSUInteger
は、*dynamic と定義されます。
typedef
これらの型のいずれかに *s を加えたもので、次のように定義されています。
#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif
それぞれのタイプで使うべき正しい書式指定子については 文字列プログラミングガイドの「プラットフォーム依存性」の項を参照。
関連
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] UITextViewのプレースホルダー
-
[解決済み] iOS 13 のフルスクリーンでモーダルを表示する
-
[解決済み] UIButtonのタイトルを左揃えにするにはどうしたらよいですか?
-
[解決済み] iOS - UITextFieldの外側をタッチするとキーボードが外れる。
-
[解決済み] iphoneアプリのベータテストはどのように行うのですか?
-
[解決済み] SwiftでiOSキーボードを任意の場所でタッチして閉じる
-
[解決済み] iOS 11、Apple TV 4Kなどを搭載したXcode 9でワイヤレスデバッグを行う方法とは?
-
[解決済み] ぼかしの入ったオーバーレイビューの作成
-
[解決済み】<input type="file">でファイル形式を制限する?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
iOSコンパイルポッドでエラー CocoaPods could not find compatible versions for pod "XXXXX" が報告される。
-
JenkinsがIOSを自動パッケージングしてモミを配布
-
[解決済み] 制約条件の変更をアニメーションで表現するには?
-
[解決済み] iOSのバージョンを確認する方法を教えてください。
-
[解決済み] 文字列の長さを取得する
-
[解決済み] Xcodeにおけるバージョンとビルドの比較
-
[解決済み] フレームワークを使用したiOSアプリがデバイス上でクラッシュ、dyld: ライブラリがロードされない、Xcode 6 Beta
-
[解決済み] アプリのプレビュー用にiOSシミュレータのビデオをキャプチャー
-
[解決済み] UIImageのサイズを変更する最も簡単な方法?
-
[解決済み] iOS 11、Apple TV 4Kなどを搭載したXcode 9でワイヤレスデバッグを行う方法とは?