2012-02-23 26 views
6

NSString配列内の文字列の数を取得する方法はありますか?Xcode:文字列配列内の要素を数える

NSString *s[2]={@"1", @"2"} 

私はこれからの長さを取得します。私はそこに何か(s.size)のようなものがあります -lengthメソッドがありますが、文字列の配列ではないことがわかります。 私はXcodeに慣れ親しんでください。優しくしてください。

答えて

19

使用NSArray

NSArray *stringArray = [NSArray arrayWithObjects:@"1", @"2", nil]; 
NSLog(@"count = %d", [stringArray count]); 
+0

はい私は最終的に可変配列を使用します。しかし、ただ好奇心から。この長さを取得する方法はありませんか? –

+2

実際は '[stringArray count]'はインスタンスメソッドであり、プロパティではないので使用してください。 – Rengers

+0

@Rengers違いはありません。 readonlyプロパティは、インスタンスメソッドとまったく同じです。 – Sulthan

1
sizeof(s)/sizeof([NSString string]); 
4

はい、方法があります。これは、配列がmallocを使用して動的に作成されない場合にのみ機能することに注意してください。


NSString *array[2] = {@"1", @"2"} 

//size of the memory needed for the array divided by the size of one element. 
NSUInteger numElements = (NSUInteger) (sizeof(array)/sizeof(NSString*)); 

アレイのこのタイプは、Cのために典型的である、とのObj-CはCのスーパーセットであるため、それを使用することが合法です。あなたは余分に慎重でなければなりません。

0

objective-cで_countfを検索しようとしましたが、存在しないようです。したがって、sizeofとtypeof演算子が正しく動作し、有効なc配列を渡すと、次のように動作する可能性があります。

#define _countof(_obj_) (sizeof(_obj_)/(sizeof(typeof(_obj_[0])))) 

NSString *s[2]={@"1", @"2"} ; 
NSInteger iCount = _countof(s) ; 
関連する問題