0
SOffer[26229:c07] current Product: (
    {
        id = 20;
        image = "img2.png";
        name = "offer 2";
    }
)

NSLog で印刷すると上記の結果になる製品がありますが、これらを個別に印刷する必要があります。次のコードはこれを生成します

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
        if (セル == nil) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
        }
        NSString *現在の製品名;
        currentProductName = [productKeys objectAtIndex:indexPath.row];

        currentProduct = [products objectForKey:[productKeys objectAtIndex:indexPath.row]];
        NSLog(@"現在の製品: %@",currentProduct);
        //currentProductName = [currentProduct objectForKey:@"image"];
        //現在の製品 = [現在の製品];

        [[cell textLabel] setText:currentProductName];

    セルを返します。
    }

currentProduct は NSArray として宣言されていますが、objectForKey で印刷しようとすると、No visible interface for NSArray はセレクター ObjectForKey を宣言します

4

1 に答える 1

1

objectForKey、私はNSDictionaryのみで動作すると信じています。

NSArrayキーと値のペアがありません。currentProductが JSON ファイルを保持していない限り、まず最初の Product の Array オブジェクトを取り出して に割り当てるNSDictionary必要があります。その後、 を使用しobjectForKeyて画像の値を取得できます。

このようなもの:

// Get the first product object from the NSArray. Assuming you dropped your entire Product values into a NSArray
NSMutableDictionary *prodDict = [currentProduct objectAtIndex:indexPath.section];
NSString *prodID = [prodDict objectForKey:@"id"];
NSString *prodName = [prodDict objectForKey:@"name"];
...
于 2012-12-13T16:40:24.357 に答える