我的問題是關於iPhone的開發。計數詞典中的詞典數量
我想知道是否有一種方法可以只計算字典中的字典數量。
例如,讓我們說這是我的字典
字典包含5個要素:
- 串
- 串
- 的NSDictionary
- 的NSDictionary
- 的NSDictionary
我想只計算NSDictionaries ...所以返回值應該是3.
有什麼辦法可以做到這一點?
謝謝。
我的問題是關於iPhone的開發。計數詞典中的詞典數量
我想知道是否有一種方法可以只計算字典中的字典數量。
例如,讓我們說這是我的字典
字典包含5個要素:
我想只計算NSDictionaries ...所以返回值應該是3.
有什麼辦法可以做到這一點?
謝謝。
NSSet *dictKeys = [myDict keysOfEntriesPassingTest:^(id key, id obj, BOOL *stop) {
return [obj isKindOfClass:[NSDictionary class]];
}];
NSUInteger numberOfDicts = [dictKeys count];
環路通過您的NSDictionary通過使用NSEnumrator和做如下測試:
如果([myObject的類] == [NSDictionary的類])C++;
哎喲,這就像乞求錯誤!特別是在處理像NSDictionary這樣的類集羣時。 – JustSid
NSDictionary* root = ...;
__block NSUInteger count = 0;
[root enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL* stop) {
if ([obj isKindOfClass: NSDictionary.class]) ++ count;
*stop = NO;
}];
當然
NSUInteger count = 0;
for (id obj in root) {
if ([obj isKindOfClass: NSDictionary.class]) ++ count;
}
中也能發揮作用。
__block NSInteger countOfDictionaries = 0;
[dictionary enumerateKeysAndObjectsUsingBlock:(void (^)(id key, id obj, BOOL *stop))block {
if ([obj isKindOfClass:[NSDictionary class]]) {
countOfDictionaries++;
}
}];
如上圖所示,只需通過你的字典的每個對象一一列舉,並保持每一個對象,它是一個「的NSDictionary」的計數,通過測試的類的對象。
謝謝。很抱歉,因爲很晚才接受答案......太晚了.. – Forrest