对于循环不改变变量

时间:2014-04-12 12:39:00

标签: ios date for-loop

首先在这里发帖,所以只是想打个招呼。我是一个初学的iOs开发者,只是为了好玩。

我一直对以下代码感到失望:

for (int n = 0; n <= iterations; n = n + 1) {

   int interval = [[object valueForKey:@"interval"] integerValue];
   NSTimeInterval singeltonTimestamp = interval * n;
   NSLog(@"%d",(int)singeltonTimestamp);

   [skeleton removeObjectForKey:@"date"];
   [skeleton setObject:[[object objectForKey:@"start"] dateByAddingTimeInterval:singeltonTimestamp] forKey:@"date"];
   [yuups addObject:skeleton];
   NSLog(@"adding skeleton");

}

我有一个名为骨架的对象,我试图添加其中的4个(迭代= 3),日期以一定的间隔增加。 singeltonTimestamp正确更改(读取NSLog输出)但是骨架的日期都是相同的,它们不会增加。

&#34;对象&#34;包含一个开始日期和一个间隔,我事先为骨架设置了一些东西(如标题)。

参见此输出

014-04-12 14:32:38.676 yuup[8397:60b] (
        {
        date = "2014-04-15 18:02:00 +0000";
        title = test;
    },
        {
        date = "2014-04-15 18:02:00 +0000";
        title = test;
    },
        {
        date = "2014-04-15 18:02:00 +0000";
        title = test;
    },
        {
        date = "2014-04-15 18:02:00 +0000";
        title = test;
}
)

帮助或提示很受欢迎。提前致谢

1 个答案:

答案 0 :(得分:1)

试试这个

skeleton = [NSMutableDictionary dictionary];
[skeleton setObject:[[object objectForKey:@"start"] dateByAddingTimeInterval:singeltonTimestamp] forKey:@"date"];
[yuups addObject:skeleton];

您要反复添加相同的对象..您必须在添加到NSMutableArray之前创建新实例