0

サーバーにアップロードされたplistがあります。配列を次のようにログに記録すると:

NSLog(@"My Array: %@", topModsArray);

以下が表示されます。

    "New item 0",
    {
    curVersion = "1.2.5";
    description = "This mod enables you to install other mods, does not modify the gameplay itself, helps other mods to.";
    maker = Risugami;
    mcVersion = "1.2.5";
    name = ModLoader;
    rating = 5;
    requires = Nothing;
},
"New item 1",
    {
    curVersion = "3.3.8.153";
    description = "This mod is like ModLoader, it allows other mods to be installed and work properly. This adds more capability for developers when making their mods.";
    maker = SpaceToad;
    mcVersion = "1.2.5";
    name = "Minecraft Forge";
    rating = 5;
    requires = ModLoader;
},
"New item 2",
    {
    curVersion = "1.2.5";
    description = "This mod gives capability for clients to use certain mods and for servers to be modded.";
    maker = Flan;
    mcVersion = "1.2.5";
    name = ModLoaderMP;
    rating = 5;
    requires = ModLoader;
},
"New item 3",
    {
    curVersion = "3.6.2";
    description = "This mod adds much more mobs to minecraft, making the game more fun and enjoyable. (Be warned it adds much more hostile mobs, and in the water)";
    maker = DrZhark;
    mcVersion = "1.2.5";
    name = "Mo' Creatures";
    rating = 5;
    requires = "ModLoader, Minecraft Forge, GUI API and CustomMobSpawner";
},
"New item 4",
    {
    curVersion = "3.1.5";
    description = "This mod makes minecraft more realistic with pipes, quarrys, machines, and much more. If you want your minecraft to be more realistic, this is a must have mod.";
    maker = "SirSengir (Now Opensource)";
    mcVersion = "1.2.5";
    name = Buildcraft;
    rating = 5;
    requires = "ModLoader and Minecraft Forge";
}

これは私が表示したいものですが、これで名前キーを UITableView に追加しようとすると:

cell.textLabel.text = [[topModsArray objectAtIndex:indexPath.row] objectForKey:@"name"];

私のアプリは SIGABRT でクラッシュします:

2012-06-27 12:54:37.765 MinePedia[72019:f803] -[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x6c8bad0
2012-06-27 12:54:37.766 MinePedia[72019:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x6c8bad0'
*** First throw call stack:
(0x13bd052 0x154ed0a 0x13beced 0x1323f00 0x1323ce2 0x3424 0xade0f 0xae589 0x99dfd 0xa8851 0x53301 0x13bee72 0x1d6792d 0x1d71827 0x1cf7fa7 0x1cf9ea6 0x1d8530c 0x25530 0x13919ce 0x1328670 0x12f44f6 0x12f3db4 0x12f3ccb 0x12a6879 0x12a693e 0x14a9b 0x2868 0x27c5)
terminate called throwing an exceptionsharedlibrary apply-load-rules all
Current language:  auto; currently objective-c
(gdb) 

私を助けてください

4

2 に答える 2

1

.hで1つの配列を作成し、それをビューに割り当ててロードし、それを使用してテーブルを表示し、配列を次のようにします...

for(int i =0 ;i <topModsArray.count ; i++ ){
    id object = [topModsArray objectAtIndex:i];
if([object isKindOfClass:[NSMutableDictionary class]] || [object isKindOfClass:[NSDictionary class]]){
     NSMutableDictionary  *dict = (NSMutableDictionary *)object;
     [yourArray addObject:dict];
 }

行の数を返すようになりました yourArray.count で、 cellForRowAtIndexPath:

 NSMutableDictionary  *dict = [yourArray objectAtIndexPath:indexPath.row];
 cell.titleLabel.text = [dict objectForKey:@"name"];

これを使用してください

于 2012-06-27T12:13:52.930 に答える
0

配列は、交互の文字列と辞書で構成されています。オフセット 0 のオブジェクトは "New item 0" で、メソッドはありませんobjectForKey:。実際に表示したい配列からアイテムを選択する必要があります(...または のようなものを使用してそれらにインデックスを付けますindexPath.row * 2 + 1)。

于 2012-06-27T12:10:02.527 に答える