整数を辞書に書き込むことができず、.plistに書き込むことはできませんが、NSNumbersは毎回の保存や辞書からの読み込みではなく、アプリケーション全体でNSNumbersを使う方が良いでしょう。 plist?NSNumberとInt
答えて
、そして、セグメントを選択したい場合は例えば
、:ちょうどあなたまで、PODの種類に固執必要を使用するにはオブジェクトベースの表現(例えば、NSNumber
)。パフォーマンスはPODではるかに優れていますが、場合によってはNSNumber
が必要になります。
いくつかのケースでは、それは意味が代わりにNSNumber
を使用することがあります - これは通常、あるとき再利用NSNumber
しばしば - これは、重複NSNumber
秒のトンを避けることです。このような場合は、シリアライゼーションや一般的なobjcインタフェース(バインディング、トランスフォーマー、ディクショナリ)を超えてはほとんど実用的ではありません。
更新/詳細:にObjCランタイムは、いくつかのケースでは、いくつかのアーキテクチャ上の、およびいくつかのOSのバージョンで特定のタイプとドメインのNSNumber
Sを表すタグ付けされたポインタに置き換えます。もともと数年前に書かれて以来、内部表現は変更されていますが、ここでは主題の良い紹介です:http://objectivistc.tumblr.com/post/7872364181/tagged-pointers-and-fast-pathed-cfnumber-integers-in。これを使うことができれば、割り当て、ロック、再カウント操作などの遅い操作からあなたを救うことができます。それにもかかわらず、タグ付きポインタはすべての数値を表すことができず、オーバーヘッドが発生するため、デフォルトの組み込み関数はNSNumber
以上にする必要があります。タグ付きポインタは適用可能な場合は最適化されていますが、の番号が必要な場合は、組み込み関数と競合することはありません。
大きなことは、KVCがオートボクシング、つまりスカラー型とNSNumberの間の変換をサポートしているため、プロパティでNSNumberを使用する必要性がほとんどないことです。 – DrMickeyLauer
64ビットデバイスの影響を考慮して、これを改訂することをお勧めします。 – user
@userアップデートが追加されました – justin
NSNumberは、NSValueラッパーオブジェクトから継承されたオブジェクトです。
intはオブジェクトではありません。
NSNumberを使用する場合、uはそれらと利用するためにより多くの機能を得ることができます。
するNSNumberは、あなたがオブジェクトとして数値型を格納することができますクラスです。さまざまな型とメソッドを変換して数値の文字列表現を取得するメソッドがあります。 NSNumber型の可変日を使用している場合は、dayの値は変更されませんが、そのメモリアドレスは変更されません。
すべてはあなたの必要性に依存します。ただし、APIにのを使用する必要がある場合は、のを使用する必要があります。 NSNumberを使用するように頼んだら、NSNumberを使用してください。あなたはUISegmentedControlを使用している、とあなたが一般化として
[segmentedControl setSelectedSegmentIndex:aIntVar]; // Can not use NSNumber here
// or
[segmentedControl setSelectedSegmentIndex:[aNumber intValue]];
- 1. NSNumberとInt、Swift DictionaryのFloat
- 2. 'NSNumber'を 'Int'に設定する警告
- 3. NSNumberの値と定義済みのintとの比較
- 4. NSNumberとNSTimeInterval
- 5. NSNumberはint値が間違っています
- 6. NS_ENUMをNSNumberとして "@"
- 7. CGPointとNSNumberの比較
- 8. NSNumberの算術
- 9. コアデータNSNumber to Int32
- 10. NSNumber with commas
- 11. NSNumber&NSDate(swift 3)
- 12. NSNumber * to CoreData
- 13. 注釈にNSArray <NSNumber *> *のObjective-Cでのそれは配列<Int>
- 14. intとNSNumberの間で複数のディスパッチを行うことはできますか?
- 15. NSNumberとintValue:奇妙な振る舞い
- 16. CGFloatからのNSNumber
- 17. NSNumberリテラルの比較
- 18. NSNumber = 0の述語
- 19. [NSNumber numberWithDouble:]を使用してNSNumberに変換する
- 20. するNSNumber:</p> <p>[のNSNumber initWithIneger:]:numberWith nはinitWith
- 21. 別のNSNumberビヘイビアからNSNumberを作成していますか?
- 22. SQL [int]とint
- 23. 形式Objective CのNSNumber
- 24. 可変配列のNSNumber = 0
- 25. NSNumberのNSArrayへのNSData?
- 26. NSNumberコアデータを保存する
- 27. Swift array.map conver NSNumber to UInt
- 28. NSNumberの計算方法
- 29. Swift 3 NSNumberオブジェクトの作成
- 30. NSManagedObjectのNSNumberプロパティのNSPredicate
メモリの割り当ては高価です。変更可能なNSNumberに似た独自のクラスを作成したいかもしれません。 –
'int'より' NSInteger'を優先します。これはOS Xのさまざまなバージョン間でより移植性があります。 – mouviciel
'NSNumber'(オブジェクト)を' int'( "スカラー値")に置き換えることができます。すべての数値量をNSNumberに保持し、各計算の/から変換することは信じられないほど厄介です。一方、 'int'の代わりに' NSInteger'を使うことは、妥当なことです。 –