もう1つの厄介な警告があります。基本的に、私はintを次のように宣言しています:@property (nonatomic, assign) int *myInt;
そして次のように設定します:myInt = 0;
。また、実装ファイルで合成されます。 intの値を設定した行に警告が表示され、Incompatible intiger to pointer conversion assigning to 'int *' from 'int'.
これを修正するにはどうすればよいですか?
エラーメッセージには大きなヒントがあります。
CおよびObjective Cでは、int
はプリミティブデータ型です。 int *
は、「intへのポインタ」を意味しますが、intが必要だったようです。
プロパティを次のように変更します。
@property (nonatomic, assign) int myInt;
詳細については、「Cポインタ」をgoogleにすると、次のような情報が見つかります。 http://pw1.netcom.com/~tjensen/ptr/pointers.htm
はい、単にアスタリスク(*
)宣言から。
たとえば、BOOL * isCheckedの代わりにBOOL isCheckedのようにします。
これを解決する別の方法は、ポインタを宣言しないことです(アスタリスクを削除)。
@interface ViewController : UIViewController {
NSUInteger myObjcInt; // unsigned ( >= 0 ) NSObject int, yo
}
int *MyInt
は、intではなく、intへのポインタです。
他の人が言ったように、単に*
そしてあなたは通常のintを持っています。