2011-07-04 14 views
10

したがって、CGRectでいっぱいの配列があります。その部分は問題ありません。問題は、アレイからCGRectを取得するときに奇妙なエラーが発生することです。私のコードをチェックしてください。前もって感謝します。CGRectを配列内のNSValueに変換すると、その逆の場合

NSArray *frameLocations = [NSArray arrayWithObjects: 
          [NSValue valueWithCGRect:CGRectMake(20, 20, 121, 124)], 
          [NSValue valueWithCGRect:CGRectMake(176, 20, 121, 124)], 
          nil]; 

私はforループ内のフレームを取得するよりも、このように:

CGRect *imageFrame = [[frameLocations objectAtIndex:i] CGRectValue]; 

私は、複数の変数の上にその行を広げ、さまざまなバリエーションの束を試みました。しかし、私はそれを得るように見えることはできません。前もって感謝します。

答えて

15

試してみてください。それは原始的なCスタイルのタイプではなく、Objective-Cのオブジェクトだから

CGRect imageFrame = [[frameLocations objectAtIndex:i] CGRectValue]; 

あなたは、CGRectには、戻っていないポインタを実際のCGRectを取得します。

あなたのコードが正しいように見えます。

+0

うわー、私は気が気になりません。どうもありがとう。それは本当に私を助けます。 – Andrew

+2

気にしないでください。問題の真実は、CスタイルのプリミティブとObjective-Cオブジェクトは、しばしば単なる実用的なパフォーマンス関連の決定です。時間の経過とともにどの命題があるのか​​を感じ取るでしょうが、命名規則やそれに類するものに固有の違いはないので、最初は2つのことを混同するのは簡単です。 – Tommy

+5

ええ、彼らはそれを主観的 - Cと呼ぶべきでした。 –

関連する問題