2012-01-08 2 views
0

タップすると、ビュー内にラベルが追加されるボタンがあります。その後にタップされるたびに、最後のラベルが終了した場所から始まる別のラベルが追加されます。不定期のオブジェクトを追加して追跡する最善の方法は何ですか?

私はすべてのラベルを追跡するために、この

if (self.currentLabel == nil) 
    startingPoint = 0; 
else 
    startingPoint = currentLabel.frame.size.width + 5; 

// Most recently created label becomes currentLabel 
self.currentLabel = [[FormulaLabel alloc] initWithFrame:CGRectMake(startingPoint, 10, 100, 50)]; 

を試してみました、私は配列

[arrayOfObjects addObject:self.currentLabel] 

に追加してみましたが、私は、配列のカウントが変更されなかったことに気づきました。

なぜ上記のコードが機能しないのですが、無限の量のラベルを追跡する良い方法がありますか?

答えて

0

NSArraysは不変です。 NSMutableArrayを使用する必要があります。

すでにNSMutableArrayを使用している場合は、警告が表示されますか?

さらに「arrayOfObjects」という名前は貧弱です。 "labels"、 "usedLabels"、 "labelHistory"のようなものははるかに説明的です。

+0

問題は、決して配列を割り当てなかったことです。しかし、一般的にコードは貧しいデザインですか? – Mahir

+0

問題を解決した場合は、質問を更新する必要があります。 –

+0

オブジェクトを追跡するために配列を使用することには何も問題はありません。名前を付けただけでなく、投稿したスニペットに間違いはありません。 if(nil == self.currentLabel)を書く習慣があるかもしれません。つまり、==の代わりに=をタイプした場合、コンパイラはエラーを投げます。 – wadesworld

関連する問題