2011-07-20 35 views
0

我有如下编辑值和复制它

NSString *name; 
NSString *date; 
NSInteger id; 

给出我存储的事件在一个NSMutabelArray对象的事件对象。我想添加到日期并存储在不同的数组中。对于我使用的循环中deleg.events所有对象是有最后计算日期的最后一次迭代之后,那么下面

NSString *curDate = event.Date; 
NSDate *date = [dateFormat dateFromString:curDate]; 
for(int i=0;i<5;i++) 
{ 
    Events *newEvent = event; 
    NSDate *newDate = [date dateByAddingTimeInterval:60*60*24*1]; 
    newEvent.date = [dateFormat stringFromDate:newDate]; 
    [deleg.events addObject:newEvent]; 
    date = newDate; 
} 

的代码。我该如何解决它。 谢谢

回答

1

你没有做出新的事件。你行

Events *newEvent = event; 

只是创建一个新的变量引用完全相同的事件对象,这意味着你现在又增加了完全相同的对象数组的5倍。

我不知道Events类是如何工作的。如果符合NSCopying,那么你可以使用

Events *newEvent = [[event copy] autorelease]; 

如果不是这样,你必须创建一个全新的Events对象(使用[[Events alloc] init]或任何适合的类),并与相应的数据填充它。