0

私のコードは配列を返しています。JSONArray ベローのログは完全に返されるため、辞書がこのコードの下に投稿された非常識な結果を提供している理由がわかりません。

NSMutableArray *listOfparts = [[NSMutableArray alloc] init];
    for (NSDictionary *object in JSONArray) {
        Part *part = [[Part alloc] initWithpartName:object[@"case_name"]
                imageName:object[@"case_image"]];
        [listOfparts addObject:part];

    }
    NSLog(@"array: %@", JSONArray);

// JSONArray のログ - いい感じです //

array: (
        {
        "case_color" = White;
        "case_description" = "";
        "case_image" = "";
        "case_name" = "NZXT Phantom 410";
        "case_price" = "99.99";
        "case_type" = ATX;
        id = 1;
    },
        {
        "case_color" = Black;
        "case_description" = "";
        "case_image" = "";
        "case_name" = "Thermaltake MK+";
        "case_price" = "84.99";
        "case_type" = ATX;
        id = 2;
    }
)

// listOfparts のログ - 見栄えが悪い //

array: (
    "<Part: 0x71b5530>",
    "<Part: 0x71b5640>"
)

どんな助けでも大歓迎です!

更新:テーブルが正しくなっているとは思わない

Part *eachpart = [listOfparts objectAtIndex:indexPath.row];
    cell.label.text = eachpart.part_name;
    cell.imageView.image = [UIImage imageNamed:eachpart.part_image];
4

2 に答える 2

2

コンソールに表示される値について話している場合は、それらのオブジェクトのメモリ アドレスしか表示されていません。これがデフォルトの動作です。コンソールにプロパティの値を表示させたい場合は、NSObject サブクラス (この場合は Part) の - (NSString *)description メソッドをサブクラス化し、必要なプロパティ値を持つ形式の文字列を返します。コンソールに表示されます。

于 2012-08-16T23:50:18.317 に答える
1

あなたが作成したクラス(または など)でPartsあると思われるものを印刷していますが、これらのクラスには または のようなプロパティがありますか?代わりにそれらを印刷します。UIButtonUIViewpartNameimageName

ところで、あなたのコードは正常に動作しているようです:)

于 2012-08-16T23:46:02.870 に答える