2011-07-20 8 views
0

私はイベントは、私はイベントがNSMutabelArrayにオブジェクトを格納しています編集オブジェクトの値と、それを複製するには、

NSString *name; 
NSString *date; 
NSInteger id; 

の下に与えられているオブジェクトを持っています。私は日付に追加し、別の配列に格納したいです。そのために私は以下のコードを使用しています

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のすべてのオブジェクトに最後に計算された日付があります。どうすれば解決できますか? ありがとう

答えて

1

あなたは新しいイベントを作っていません。あなたのライン

Events *newEvent = event; 

はちょうどあなたが今アレイ5倍に正確に同じオブジェクトを追加した意味まったく同じイベントオブジェクトを参照する新しい変数を作成しています。

あなたのEventsクラスの仕組みがわかりません。それはNSCopyingに準拠している場合、あなたは([[Events alloc] init]または何クラスに適切なを使用して)新しいEventsオブジェクトを作成し、適切なデータを移入する必要がありますない場合は、

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

を使用することができます。

関連する問題