2012-01-11 13 views
13

Tôi muốn nhận số đếm NSMutableDictionary trong iphone. Tôi muốn biết có bao nhiêu mục trong NSMutableDictionry. Tôi đã thử các mã này để tìm ra giải pháp nhưng, không giúp tôi nhiều.Cách nhận số đếm NSMutableDictionary trong iphone?

NSLog(@"Count : %d", [mutableDictionary count]); 

Luôn trả về '0'. Làm thế nào để có được số lượng NSMutableDictionary trong iPhone? Cảm ơn trước.

Trả lời

30

Bạn có thể tìm ra bao nhiêu chìa khóa đối tượng (key-value) cặp có như vậy:

NSArray * allKeys = [mutableDictionary allKeys]; 
NSLog(@"Count : %d", [allKeys count]); 

EDIT

Sau khi tìm kiếm thông qua các tài liệu từ điển, count phương pháp NSDictionary 's (hoặc tài sản) cũng sẽ hoạt động. Tôi nghĩ rằng bạn có thể đã nhận được 0 tính vì từ điển trống hoặc không. Tôi đã cung cấp giải pháp của mình vì tôi có xu hướng quan tâm nhiều hơn đến việc liệt kê các khóa hơn là đếm trực tiếp các mục nhập.

Hãy xem xét thực tế là bạn đã khắc phục vấn đề ở một nơi khác.
• Bằng cách thực sự Populating điển
hoặc
• Bằng cách vá một lỗi nơi mutableDictionary là bằng cách nào đó nil

tôi chạy mã kiểm tra này và nhận được đầu ra nhận xét

NSMutableDictionary * countDict = [NSMutableDictionary dictionaryWithObject:@"test" forKey:@"test"]; 
    [countDict setObject:@"foo" forKey:@"bar"]; 
    NSLog(@"test count %d", countDict.count); //test count 2 
    countDict = nil; 
    NSLog(@"test count %d", countDict.count); //test count 0 
10

[[dictionary allKeys] count]; sẽ làm các trick.

2
 NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Rakesh",@"Name",@"[email protected]",@"Email",nil]; 
    NSLog(@"Count : %d", [dict count]) 

Hãy thử điều này

+0

nó sẽ trả về Đếm: 2 –

+1

@RakeshBhatt +1 từ tôi. Tôi đã chỉnh sửa câu trả lời của mình sau một số nghiên cứu về phương pháp đếm. Tôi tin rằng OP có một số vấn đề khác đã được giải quyết. –

0

nếu bạn đang tìm kiếm để đếm các giá trị NSMutableDictionary cho bất kỳ mục Mảng bạn có thể sử dụng.

NSLog(@"myDictionaryCount %lu", (unsigned long)[myDictionary[@"items"] count]);