"thisList"というNSDictionaryがあり、そのキー "list_collection"の値を取得する必要があります。NSSingleEntryDictionaryの値を取得できません
Xcodeは、値が "NSSingleEntryDictionary"であることを示します。
値自体にはさらに別の辞書が含まれています。
スクリーンショットを見て取らないしてください:関係なく、私がしようとするもの(objectforKey/valueforKey)または任意のタイプのオブジェクトの私は初期化(NSArrayの/ NSMutableArrayの/ NSDictionaryの/ NSMutableDictionary)私は結局、今
をゼロ値。
明らかに、これを処理する方法に関するいくつかの本質的な知識が不足しています。
私の質問:どのようにキー "list_collection"の値でオブジェクトを初期化する必要がありますか?ここで
は、JSONの(部分)ダンプです:
Printing description of thisList:
{
archived = 0;
"chapter_part" = "";
"chapter_title" = "";
comment = "";
"cover_id" = "<null>";
"created_at" = "2017-01-06T12:59:04.000+01:00";
"date_created" = "06 January 2017";
deleted = 0;
id = 141384502;
isMyList = 1;
keywords = (
);
"list_collection" = {
lists = (
{
"speech_locale" = EN;
subject = engels;
words = (
{
word = attitude;
},
私にとって最も論理的なアプローチは次のようになります。
NSDictionary * myDic = [thisList objectForKey:@"list_collection"];
注:私は明示的に初期化されませんでした 'myDic' ここに。あなたの洞察力のための
NSString * hlists = [json objectForKey:@"lists"];
NSData* data = [hlists dataUsingEncoding:NSUTF8StringEncoding];
NSArray *wrtsLists = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonParsingError];
Lists = [[NSMutableArray alloc]init];
for (NSDictionary *thisList in wrtsLists){
WordList* theList = [[WordList alloc]init];
theList.title = [thisList valueForKey:@"title"];
[Lists addObject:theList];
NSDictionary *myDic = thisList[@"list_collection"];
>>>>this is where I put a breakpoint. myDic is nil here
}
ありがとう:
は文脈で物事を置くために、ここに私のコードです。
いくつかのコードとJSONデータを投稿できますか?私たちはあなたの問題であなたを助けることができます。 – CodeChanger
変数が宣言されているオブジェクトの種類は問わず、キーが正しい場合は「nil」になりません。型の不一致は、後で行のクラッシュを引き起こす可能性がありますが、値をnilにしません。 コンソールを使用し、 "po thisList.allKeys"と入力して、キーのスペルが正しいかどうかを確認してください。 – GreatWiz
スクリーンショットによれば、*最も論理的なアプローチ*が有効です。しかし、私はいつも 'thisList [@" list_collection "]'のようなキーサブスクリプションを好むでしょう。 – vadian