1

dictionaries の nsmutablearray を作成しようとしているアプリケーションがあります。

 rateValues=[[NSMutableArray alloc]init];
    rateValues1=[[NSMutableDictionary alloc]init];
    if(messagesArray!=nil)
    {
        for (Messagestable *rating in messagesArray)
        {
                        //[rateValues  addObject:rating.message];

             [rateValues1 setObject:rating.fromid forKey:@"fromid"];
               [rateValues1 setObject:rating.toid forKey:@"toid"];
             [rateValues1 setObject:rating.sendingtime forKey:@"sendingtime"];
            [rateValues1 setObject:rating.message forKey:@"message"];
            [rateValues1 setObject:rating.fromname forKey:@"fromname"];

            [rateValues  addObject:rateValues1];

        }



    }
    else{
        //NSLog(@"array empty");
        return;
    }

    NSLog(@"%@",rateValues);

「私の配列には最後の要素だけが 4 回含まれています。つまり、coredata 内のデータの数です。誰か助けてくれませんか?」

4

1 に答える 1

2

反復ごとに新しい辞書を作成する必要があります。現在行っていることは、単一の辞書を上書きして配列に再度追加することです。

rateValues=[[NSMutableArray alloc]init];
if(messagesArray!=nil)
{
    for (Messagestable *rating in messagesArray)
    {
        NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
        [rateValues1 setObject:rating.fromid forKey:@"fromid"];
        [rateValues1 setObject:rating.toid forKey:@"toid"];
        [rateValues1 setObject:rating.sendingtime forKey:@"sendingtime"];
        [rateValues1 setObject:rating.message forKey:@"message"];
        [rateValues1 setObject:rating.fromname forKey:@"fromname"];

        [rateValues  addObject:dict];
    }
}
else{
    //NSLog(@"array empty");
    return;
}

NSLog(@"%@",rateValues);
于 2013-02-08T13:19:16.070 に答える