我傳遞一個字典列表:獲取值時的NSDictionary包含
aDictionary
當我登錄它的字典的格式如下:
{
value1 = "subValue1 {label=value1, info1=, info2=}";
value2 = "subValue2 {label=value2, info1=, info2=}";
value3 = "subValue3 {label=value2, info1=, info2=}";
}
我需要遍歷字典然後確定value3是否有值 - > subValue3 - > info2。
我能做的初始迭代,我可以使線的子詞典:
"subValue3 {label=value2, info1=, info2=}"
但是當我嘗試使用它,說拿到鑰匙的數量,我得到 - [subValue3 allKeys ]:無法識別的選擇器發送到實例。
NSArray *keys;
int i, count;
id key, value;
keys = [aDictionary allKeys];
count = [keys count];
for (i = 0; i < count; i++)
{
key = [keys objectAtIndex:i];
value = [aDictionary objectForKey:key];
NSLog (@"Key: %@ for value: %@", key, value);
NSDictionary *subDictionary = [aDictionary objectForKey:key];
if ([key isEqualToString:@"info2"]) {
DLog(@"subDictioanry = %@", subDictionary);
// Everything is fine up to here
NSArray *keys2;
int i2, count2;
id key2, value2;
keys2 = [subDictionary allKeys];
count = [keys2 count];
//
// Right here I get "-[subValue3 allKeys]: unrecognized selector sent to instance"
//
for (i2 = 0; i2 < count2; i2++) {
key2 = [keys2 objectAtIndex:i2];
value = [subDictionary objectForKey:key];
DLog (@"Key: %@ for value: %@", key2, value2);
NSDictionary *subDictionary2 = [subDictionary objectForKey:key2];
DLog(@"subDictionary2 = %@", subDictionary2);
}
}
問題: 我不知道這是什麼第二組值的格式爲( 「subValue3 {標籤=值2,INFO1 =,= INFO2}」)。它是一個集合,一個數組,一個字典嗎? 如何將該組加入字典(沒有按鍵(?)「subValue3」)失敗,以便我可以檢查密鑰info2是否有任何值?
免責聲明: 我知道有更有效的方法來迭代字典,我只是想盡可能清楚。 我確定只有一些基本的東西丟失了,但是我沒有在迭代或NSDictionary的Apple文檔中看到答案,也沒有找到關於第二組中的格式的任何信息。 謝謝!
真。但我不想通過將其轉換爲JSON的過程來獲得價值。也許我需要將它解析爲一個字符串。 – addzo
如果你不想轉換JSON,那麼你可以使用正則表達式。 –