2012-01-03 9 views
1

ゲームボード上の16の位置を表す16のCGポイントの配列を作成しました。これは配列の設定方法ですCGPoint cgpointarray[16]; forループを作成して配列内の各アイテムを順番に調べて、タッチがx位置内にあるかどうかを確認したいのですが(CGPointとしての位置があります。 。?Xcodeのか、客観Cで多くの実務経験を持っている私は、おかげで私はこれを実現する方法をPythonの相当CGPointの配列を循環させる方法

for (i in cgpointarray){ 
     //Stuff to do 
    } 

だろう

答えて

5
for (int i = 0; i < 16; i++){ 
     CGPoint p = cgpointarray[i]; 
     //do something 
    } 

知っているまたはあなたがNSArrayのクラスを使用する場合:

NSMutableArray *points = [NSMutableArray array]; 

[points addObject:[ NSValue valueWithCGPoint:CGPointMake(1,2)]]; 

for(NSValue *v in points) { 
     CGPoint p = v.CGPointValue; 

     //do something 
} 

(Xcodeでテストされていない)

+0

メッカンの答えはより完全です。私が投稿したもの(と彼のトップコードセグメント)は正常に動作しますが、NSArrayを使用することは私が行く方法です。 –

+0

なぜですか?違いはなんですか? – Puregame

+0

最初はC Structバージョン(OOPなし)です。 2番目は、データを格納するための標準Foundation Objectsを使用します。これが@AndrewMadsenが2番目の解決策を推奨している理由です。 – CarlJ

1

これはそれを行う必要があります。

for (NSUInteger i=0; i < sizeof(cgpointarray)/sizeof(CGPoint); i++) { 
    CGPoint point = cgpointarray[i]; 

    // Do stuff with point 
} 
0

私は、通常、上記NSValueのアプローチのために行くだろうが、時にはあなたは出力を変更することはできませんAPIを使用して作業しています。 @Andrewsのアプローチは涼しいですが、私はカウントのシンプルさを好む:

NSArray* arrayOfStructyThings = [someAPI giveMeAnNSArrayOfStructs]; 
for (NSUInteger i = 0; i < arrayOfStructyThings.count; ++i) { 
    SomeOldStruct tr = arrayOfStructyThings[i]; 
    .... do your worst here ... 
} 
関連する問題