2012-01-24 85 views
0

向NSArray或NSDictionary添加對象時,我的應用程序只顯示最後一個條目的副本。NSArray和NSDictionary添加重複對象

我得到的數據並將其發送給觀察者......

[[NSNotificationCenter defaultCenter] postNotificationName:@"xmlFinishedLoading" object:self userInfo:[NSDictionary dictionaryWithObject:currentEventObject forKey:@"notifKey"]]; 

當觀察者接收到通知,該代碼跑......

 -(void)populateCurrentEventsTableView:(NSDictionary *)events 
    { 

    NSDictionary *info = [events valueForKey:@"userInfo"]; 
    Event *evt = [info valueForKey:@"notifKey"]; 
    if (self.eventDictionary == nil) { 
    self.eventDictionary = [[NSMutableDictionary alloc]init]; 

    } 
    [self.eventList addObject:evt]; 
    NSString *key = [NSString stringWithFormat:@"%i",[eventList count] - 1]; 
    [self.eventDictionary setValue:evt forKey:key]; 

    NSLog(@"events description = %@",evt.eventDescription); 
    [self.tableView reloadData]; 

    } 

TableView中重新載入此代碼...

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:  (NSIndexPath *)indexPath 
    { 
static NSString *CellIdentifier = @"ActivitiesList"; 



UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
} 

// Configure the cell... 
NSUInteger row = [indexPath row]; 

NSString *rowKey = [NSString stringWithFormat:@"%i",row]; 

Event *evt = [eventDictionary objectForKey:rowKey]; 

cell.textLabel.text = evt.eventDescription; 
cell.detailTextLabel.text = evt.eventSecondaryDescription; 
return cell; 

}

顯示事件描述的NSLog很好,它顯示不同的條目。但是,如果我要顯示eventDictionary的條目,它將顯示相同的條目。任何幫助?

回答

0

更多包含代碼會有幫助,你有什麼看起來不錯。這個代碼出現在什麼方法中?每當你回來一個userInfo對象來填充它時,是否有可能刪除self.eventDictionary?

+0

我增加了一些代碼,希望它會顯示一些東西。 – cohs

+0

你是什麼意思「它顯示相同的條目」? eventDictionary只有1個項目,或者它是正確的項目數量(你嘗試添加的項目數量),但是每個項目都是相同的? –