2011-10-27 7 views
0

次のループをどのようにしてループしますかNSDictionaryNSDictionaryをループしてNSMutableArrayに追加する

2011-10-27 11:40:23.775 Discounts[305:f803] { 
    NewDataSet =  { 
     Discounts =   (
         { 
       BIN =     { 
        text = "\n 900020"; 
       }; 
       DiscountId =     { 
        text = "\n \n d06dab1b-a2a3-464e-a522-00185fcf5e7c"; 
       }; 
       DiscountPrice =     { 
        text = "\n 75%"; 
       }; 
       GRP =     { 
        text = "\n 8013230"; 
       }; 
       PCN =     { 
        text = "\n CLAIMNE"; 
       }; 
       Title =     { 
        text = "\n duralclon"; 
       }; 
       UID =     { 
        text = "\n 100000"; 
       }; 
       text = "\n "; 
      }, 
         { 
       BIN =     { 
        text = "\n 900020"; 
       }; 
       DiscountId =     { 
        text = "\n \n 159d9ba9-462c-47a2-a23e-002137c6fd2e"; 
       }; 
       DiscountPrice =     { 
        text = "\n 75%"; 
       }; 
       GRP =     { 
        text = "\n 8013230"; 
       }; 
       PCN =     { 
        text = "\n CLAIMNE"; 
       }; 
       Title =     { 
        text = "\n allermax"; 
       }; 
       UID =     { 
        text = "\n 100001"; 
       }; 
       text = "\n "; 
      }, 
... 

私が試した:私は私のNSMutableArrayself.discountsのにMyObjectを追加するために、それによって内容でNSArrayして、ループを作成するためのものだかどうか

for (id key in discountsDict) { 
    MyObject *obj = [[MyObject alloc] init]; 
    obj.Title = (NSString *)[key objectForKey:@"Title"]; // *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<__NSCFString 0x6ca2eb0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key Title.' 
    [self.discounts addObject:obj]; 
    [obj release]; 
} 

かなりわかりません。

ありがとうございます。

+0

どのようなエラーが表示されますか? – Dani

+0

@ダニー:エラーをスローする行の隣にコメントとしてエラーを追加しました。 – fuzz

+0

辞書を目的のCスタイルの 'NSLog(@"%@ "、discountsDict)'にダンプして投稿できますか? – Dani

答えて

-2

keyobjectForKey:@"Title"ですが、keyはちょうどNSString*です。本当に意味するのは[[discountsDict objectForKey:key] objectForKey:@"Title"]です。または、4.0以上をサポートしている場合は、

[discountsDict enumerateKeysAndObjectsUsingBlock:^(id key, id val, BOOL *stop){ 
    MyObject *obj = [[MyObject alloc] init]; 
    obj.Title = [val objectForKey:@"Title"]; 
    [self.discounts addObject:obj]; 
    [obj release]; 
}]; 
+0

ターゲットフレームワークが4.0で、Xcode 4.2を使用しています。次の警告が表示されます: '//インスタンスメソッドenumerateObjectsAndKeysUsingBlockが見つかりません ' – fuzz

+0

また、NSString * title =(NSString *)[[discountsDict objectForKey:key] objectForKey: @ "Title"]; 'も動作しませんでした。 'Title'に' nil'を返します。 – fuzz

+0

修正されました。実際は 'enumerateKeysAndObjectsUsingBlock'は' enumerateObjectsAndKeysUsingBlock'ではありません。警告は止まりますが、 'Title'が' null'を返しています。 – fuzz

-1

その辞書には1つの要素( "NewDataSet")しか存在しないことは理解できますか?

+0

はい、コメントの代わりにこれを答えとして追加したのは分かりますか? – fuzz

関連する問題