我有一个事件对象,如下所示
NSString *name;
NSString *date;
NSInteger id;
我将事件对象存储在NSMutabelArray中。我想添加日期并存储在不同的数组中。为此,我使用下面的代码
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;
}
因此,在循环的最后一次迭代之后,deleg.events中的所有对象都具有最后计算的日期。我该如何解决呢。 感谢
答案 0 :(得分:1)
你没有参加新活动。你的行
Events *newEvent = event;
只是创建一个引用完全相同的事件对象的新变量,这意味着您现在已经将完全相同的对象添加到数组中5次。
我不知道您的Events
班级是如何运作的。如果它符合NSCopying,那么你可以使用
Events *newEvent = [[event copy] autorelease];
如果没有,您将必须创建一个全新的Events
对象(使用[[Events alloc] init]
或适合该类的任何对象),并使用适当的数据填充它。