0

Web サービスから json を解析する最初の iOS アプリを構築しようとしています。

私の .h ファイルで、配列を作成します

NSArray *items;

私の .m ファイルでは、Web サイトを呼び出し、データを配列に保存します。最終的にデータを uitableview に表示しようとしていることを除いて、これはすべてうまくいきます。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"ItemsCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    NSLog(@"%@",items);

    NSDictionary *item = [items objectAtIndex:indexPath.row];
    NSString *title = [item objectForKey:@"title"];

    cell.title.text = title;

    return cell;
}

項目の nslog は以下を生成します。

{
category = code;
keyword = "";
limit = 20;
lowPrice = "";
page = 0;
products =     (
    {
        description = "...";
        mobileFriendly = 1;
        popularity = 2021;
        productId = code;
        title = "title";
    }, and so on...
)

NSDictionary *item = [items objectAtIndex:indexPath.row]; を実行しようとするとエラーが発生します。objectAtIndex:indexPath.row を実行することは無効です。

私は何を間違っていますか?

ご協力いただきありがとうございます!

4

2 に答える 2

0

に格納されている値itemsはのインスタンスNSDictionaryですが、メッセージを送信していNSArrayます。また、あなたが投稿したコードは、giftとにかくアイテムを参照して無視しています。

探している配列は実際には辞書products内のキーの下に格納されているitemsため、次のようにする必要があります。

NSArray *products = [items objectForKey:@"products"];

NSDictionary *product = [products objectAtIndex:indexPath.row];
// Then use the product, instead of using 'gift' (whatever that is).
NSString *title = [product objectForKey:@"title"];
于 2012-07-06T19:32:25.667 に答える
0

商品は ではありませんNSArray-NSDictionaryです。したがって、objectAtIndexPath:メソッドはありません。

于 2012-07-06T19:30:02.313 に答える