現在、ニュースセクション用のUITableViewを持つアプリケーションに取り組んでいます。ニュースを取得してtableViewのセルに入力するAPI呼び出しを行います。現在、JSONを介してデータを返していますが、JSONの応答は次のようになります:(改行を入れると、構造を読み取るのが少し簡単になります)
[
{
"news_id": "1",
"news_title": "Sample headline",
"news_date": "2012-12-19",
"news_news": "news article 1",
"news_priority": "3"
},
{
"news_id": "2",
"news_title": "On the Outside, Looking in",
"news_date": "2012-11-20",
"news_news": "news article 2",
"news_priority": "2"
},
{
"news_id": "3",
"news_title": "Fla. Plans to Mark Death Penalty's Return",
"news_date": "2012-12-23",
"news_news": "news article 3",
"news_priority": "1"
}
]
PHPを介したJSONエンコーディングの前は、私の配列は次のようになっています。
Array
(
[0] => Array
(
[news_id] => 1
[news_title] => Sample headline
[news_date] => 2012-12-19
[news_news] => news article 1
[news_priority] => 3
)
[1] => Array
(
[news_id] => 2
[news_title] => On the Outside, Looking in
[news_date] => 2012-11-20
[news_news] => news article 2
[news_priority] => 2
)
[2] => Array
(
[news_id] => 3
[news_title] => Fla. Plans to Mark Death Penalty's Return
[news_date] => 2012-12-23
[news_news] => news article 3
[news_priority] => 1
)
)
次のようにして応答を保存しています。
// populate the dictionary with the json response.
NSDictionary *data = [NSJSONSerialization JSONObjectWithData:returnData options:NSJSONReadingMutableContainers error:&error];
return data;
// model has a method to construct the url request/connection etc
NSDictionary *newsDict = [model makeServerAPICall:kURL postMessage:@"method=getNews"];
NSString *string = [newsDict objectForKey:@"news_id"];
この時点までは、配列内の要素にアクセスしようとすると、次のエラーでクラッシュすることを除いて、すべてが正常に表示されています。
-[__ NSArrayM objectForKey:]:これはNSDictionaryですが、認識されないセレクターがインスタンス0xab13a40に送信されました。「データ」はNSDictionaryであるため、この時点ではかなり混乱しています。
news_titleがセルにリストされている返されたデータを使用してtableViewを設定しようとしています。選択すると、その記事の相対データを表示する詳細ビューにプッシュされます。返されるデータが非常に単純なJSON形式である多くのAPI呼び出しを行いました。これは、JSON応答から複数の配列を含むデータを抽出する最初の試みです。正直なところ、この時点で私はここから他にどこに行くべきかわかりません。どんな助けでも大歓迎です。