8

「請求書」の中にいくつのイテンがあるのか​​をどうやって数えることができますか?

bills =     (
            {
        id = 1;
        name = "Cursus Nibh Venenatis";
        value = "875.24";
    },
            {
        id = 2;
        name = "Elit Fusce";
        value = "254.02";
    }
);

私はこのように数えています:

NSUInteger keyCount = [resultsDictionary count];
NSLog(@"%i", keyCount);

ありがとう!

4

4 に答える 4

6

ナイーブなソリューションは、OPがカウントしたいと想定しますがbills、これはたまたま配列であるため、ソリューションは次のようになります。

NSLog(@"Count: %i", [[resultsDictionary objectForKey: @"bills"] count]);

ただし、カウントしたいオブジェクトが複数ある辞書がある場合は、それらすべてを列挙することが唯一の方法です。

于 2012-07-31T13:47:13.577 に答える
4
NSUInteger keyCount = [resultsDictionary count];
NSLog(@"%i", keyCount); 

trueですが[resultsDictionary allKeys];、キーの配列を返すを使用して、そのカウントを直接取得することもできます。詳細については、 docs:vをご覧ください。

于 2012-07-31T13:44:33.213 に答える
1

NSUInteger count = [bills count];//辞書のトップレベルのアイテム

すべてのアイテムを取得する場合は、ブロック列挙を使用し、すべてのディクショナリにカウントを繰り返し尋ねてから合計する必要があります。コードを書く必要があります-これを行うためのシステム提供のメソッドはありません。クラスリファレンスのブロック列挙(つまり、列挙....)を見てください。

また、各アイテムにそれが何であるかを尋ねることもできます。「isKindOf:」の場合はNSDictionaryまたはNSArrayで、カウントを取得します。それ以外の場合は1として扱います。

于 2012-07-31T13:43:21.917 に答える
1
NSMutableArray *billsArray =[[NSMutableArray alloc] init];
billsArray = [resultsDictionary valueForKey:@"bills"];//returns array
NSUInteger keyCount = [billsArray count];
NSLog(@"%i", keyCount);

お役に立てればと思います。

于 2012-07-31T13:45:08.243 に答える