私はiOS6で開発しており、Xcode 4.5.2を使用しています。
UIViewController
その名前を としましょうaViewController
。このUIViewController
では、このコードを使用してプロパティとして宣言されたBOOL ポインターがあります。実際、これは私が実装したコードの一部ではないため、BOOL ポインターが使用される理由がよくわかりません。
ここで、このBOOL ポインターに値を代入すると、この有名な警告Incompatible integer to pointer conversion assigning to 'BOOL *' (aka 'signed char *') from 'signed char'
が表示されますが、私の場合、BOOLはブール変数を指しているため、完全に理解できます。
この問題を解決するために、私はこれを試しました.だから私のコードは次のようになりました:
aViewController.aBoolPointer = YES;
それから、私は試しました、
aViewController.(*aBoolPointer) = YES;
Objective-c は C のスーパー セットであるため、C.*
表記では が に等しいことを覚えてい->
ます。そして、上記の表記法ではエラーが発生します。エラーの説明:識別子が必要です。
コードを次のように変更すると:
aViewController->aBoolPointer = YES ;
このエラーInstance variable aBoolPointer is protected が発生しました。
このコードを使用すると、ここに奇妙な問題があります
aViewController.aBoolPointer = NO ;
その後、警告はありませんでした。
だから私の質問は:
1 - BOOL ポインタにNO値を代入しても警告が表示されないのはなぜですか?
2 - BOOL ポインターにYES値を適切に割り当てるにはどうすればよいですか?
3 -私が説明した手順を考慮した場合の、はいまたはいいえの違いは何ですか?
皆さん、ありがとうございました。