Objective-Cエラー:式を割り当てることができません。



Objective C Error Expression Is Not Assignable



最近、私は母国語のObjective-Cを学ぶことを計画し始めました。また、途中で遭遇した落とし穴も記録します。それらはすべてピットを踏んだ経験です。いつの日か、私が書いた技術ブログを見ることで誰かが多くの恩恵を受けるからです。前進し続ける意欲が高まります。

背景画像を使用してUIButtonを学習した後、ボタンをクリックしてこの小さなデモの位置を移動すると、コードが添付されます。



- (IBAction)leftBtn { CGRect originFrame = self.img.frame originFrame.origin.x -=10 self.img.frame = originFrame NSLog(@' ') }

たとえば、この左クリックイベント。まず、このUIButtonのimgフレームを取得します。また、このフレームは構造体のCGRectタイプであるため、CGRact変数名を付けて保存する必要があります。次に、原点(x / y)またはサイズ(幅/高さ)を変更します。最後に、もう1つのステップが必要です:self.img.frame = originFrame。その後、割り当て直します。

以前のjsの弱いタイプで実際に記述されている場合は、直接記述されます。



self.img.frame.origin.x- = 10

エラーが報告されます。重要なポイントは次のとおりです。




ただし、OCはそうではありません。UIButtonはOCオブジェクトであり、OCオブジェクトの属性フレームが構造タイプの場合、構造タイプの属性フレームを変更するときは、最初に構造タイプCGRectで格納してから、式の計算を割り当ててから、計算された値をself.img.frameに再割り当てします。

構造は値の転送であり、アドレスの転送ではありません。値の計算が完了すると、値は元のオブジェクトフレームに割り当てられます。