2012-01-22 10 views
0

私は配列を持っている、私はその要素をカウントする方法を知っているが、私は特定の単語までの要素をカウントする必要があります。NSMutableArrayのサイズは、特定の単語まで、または特定の単語から?

NSMutableArray *whatBondInFrame; 

whatBondInFrame=[NSMutableArray arrayWithObjects:@"red",@"red",@"red",@"gray",@"red",@"ran",@"gray",@"gray",nil]; 

私は[ whatBondInFrame count]が、を知っている、のは、私がどのように多くの要素を知りたいとしましょう私は最初の灰色またはから単語 "走った"まで持っています。

どうすれば入手できますか?

答えて

1

これはテストされていませんが、それは動作するはずです:

int loc = 0; 
for (loc; loc < [array count]; loc++) { 
    NSString *str = [array objectAtIndex:loc]; 
    if ([str isEqualToString:@"ran"]) 
     break; 
} 
int length = array.count-loc; 

これが走った名前の最初の要素からあなたにcountを与えます。 あなたが

int length = loc 
+0

おかげさまですごくうれしいですが、リンゴがあなたに与えてくれるものがほしいと思っていました。とにかくありがとう 。 – Curnelious

+0

これを行うための具体的なAPIはありません。私は私の答えにいくつかの情報を追加しました – JonasG

1

NSArray方法と最後の行を置き換え単語が「走った」(まで)の前にありますどのように多くの要素を知りたい場合は、次の

- (NSUInteger)indexOfObject:(id)anObject 

はのインデックスを返します。オブジェクトの最初の発生は、あなたが行うことができます。

NSUInteger firstRanIndex = [whatBondInFrame indexOfObject:@"ran"]; 

コンパニオン方法があります

- (NSUInteger)indexOfObject:(id)anObject inRange:(NSRange)range 

これは、配列の特定の範囲に検索を制限します。上記の方法でループする必要があるため、最後のオカレンスを見つける方法はありません。

countメソッドと組み合わせて、必要な番号を取得することができます。

関連する問題