1

我有一个应用程序,我试图在其中创建一个 nsmutablearray 字典。一切正常,但问题是只有最后一个元素添加了 coredata 数组的计数时间。这就是我的做法`

 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 回答