- ベストアンサー
objective-cで分かりにくい所教えて下さい
(1)NSIntegerとintの違い intでもNSIntegerどちらも使ってプログラムが動くのですが、 実際どのように違うのでしょうか? (2)インスタンス変数 ローカル変数 私の勝手な解釈ですが、 インタンス変数は、1つのクラス内のどのメソッドでも共通で使える変数、 ローカル変数は、宣言したメソッド内でしか使えない変数、 という事でよろしいのでしょうか? 検索しましたが、あいまいな為、質問させていただきました。 初級的な質問で申し訳ないのですが、どうかよろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> (1)NSIntegerとintの違い Xcodeヘルプで検索して、NSIntegerのリファレンスを読んでください。 NSInteger http://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_DataTypes/Reference/reference.html#//apple_ref/doc/uid/20000018-SW16 64ビットアプリにおいて、確実に64ビット幅の整数値を必要とするときに、NSIntegerを使えばいいのであって、それ以外にNSIntegerとintを明確に区別する必要はないと考えていいでしょう。 > (2)インスタンス変数 ローカル変数 パターン認識において、まったく異なるパターン分けなので、比較自体に意味がありません。たとえていうなら、「四輪駆動車と救急車の違いはなんですか?」という質問と同類といえるでしょう。 「インスタンス変数」は、インスタンスの属性(性格)を決定する変数のことを指します。UIViewのインスタンスなら、フレームサイズを決定するCGRect型の変数frame、中心位置を決定するCGPoint型の変数center、透明度を決定するCGFloat型の変数alphaがインスタンス変数になります。 「ローカル変数」は、C言語における変数の分類分けに基づくものです。Objective-C特有の概念としては、定義されていません。 インスタンス変数は、C言語のグローバル変数的に使えますが、インスタンスの属性の決定に関係しないグローバル変数なら、べつに決められた場所に書く必要はありません。ヘッダファイルではなく、実装ファイルに書いてもいいでしょうし、ヘッダファイルの「@interface」指示子の前に書いてもかまわないでしょう。
お礼
ご回答ありがとうございました! おかげさまでモヤモヤがぶっとびました!