私は、オブジェクトを返すときにrespondsToSelectorメソッドの戻り値の型を取得できることがわかります。しかし、NSIntegerのようなプリミティブ型を返すとき、 。 NSInteger.T_Tを返す誤ったSELを使ってNSStringを初期化すると、アプリケーションがクラッシュする ここで行うことができるのは、プリミティブ型を返す必要があるときにmakeメソッドがNSNumber値を返すことだけです。私はこれをする必要がありますか?プリミティブ型を返すときにSELの戻り値の型を取得する簡単な方法はありますか?これは、プリミティブ型の値を返すときにrespondsToSelectorメソッドの戻り値型を取得する方法
0
A
答えて
0
NSNumber
を使用する際の問題点を教えてください。数値の「タイプ」(整数、浮動小数点数)がわかっている場合は、-[NSNumber integerValue]
または-[NSNumber floatValue]
と呼んで、必要なプリミティブを取得できます。
戻ってくるプリミティブ型がわからない場合は、NSNumber
インスタンスのobjCType
プロパティを使用して、@encode()
ディレクティブを含むCスタイルの文字列を取得できます。これらは、Objective-Cデータのエンコード方法を示します。詳細については、Type Encodingを参照してください。
戻ってきたタイプのC文字列に基づいて、NSNumber
インスタンス内に実際に格納されているプリミティブタイプに応じて応答し、上記の方法を使用して正しい値を取得できます。
関連する問題
- 1. 関数の戻り値の型を取得する方法
- 2. クラス戻り値の型メソッド
- 3. JavaでPredicateの戻り値の型を持つメソッドの値を取得する
- 4. Objective-cでメソッドの戻り値の型をテストする方法
- 5. メソッドで動的な戻り値の型を返す方法は? C#
- 6. データベースオブジェクトを返すPHPメソッドの戻り値の型?
- 7. プリミティブ型のスカラマップ値型
- 8. Java - 戻り値の型でメソッドを呼び出す方法
- 9. VS2015 C++コルーチン:promise.get_return_object()戻り値の型とコルーチン戻り値の型
- 10. 入力と戻り値の型と同じ型を使用する方法は?
- 11. System.Void型は、値を返さないメソッドの戻り値型をどのように指定しますか?
- 12. PHP:メソッドの戻り値の型を取得する方法はありますか?
- 13. Objective Cでメソッドの戻り値の型を取得する方法はありますか?
- 14. C++でオーバーロードされたメソッドの戻り値の型を取得する方法は?
- 15. プリミティブ型を返すメソッドの再実装
- 16. ラップされたメソッド(型スクリプト)の戻り値の型式
- 17. メソッドの戻り値の型の共変
- 18. メソッドの戻り値の型を指す "予想される型のエラー"
- 19. テンプレートで関数の戻り値の型を取得する
- 20. C配列の戻り値の型を取得する
- 21. マクロで関数の戻り値の型を取得する(C++)
- 22. java generics - メソッドの戻り値の型
- 23. 戻り値の型/メソッドの代替?
- 24. 戻り値の型が "Expression"のメソッド
- 25. ポップアップウィンドウから戻り値の型を取得する最善の方法JavaFx
- 26. Linqと戻り値の型
- 27. decltype(オート) - 戻り値の型の推論戻り値の型
- 28. 戻り値の型
- 29. 戻り値の型
- 30. 戻り値の型=
多数のNSNumberを使用するとメモリ使用量が高くなりますか? – Dogstar
それはしないでください。心配している場合はコードをプロファイルする必要がありますが、あらかじめメモリ使用量などについては仮定しないでください:) – LucasTizma
それは私には大いに役立ちます、U ~~~ – Dogstar