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的條目,它將顯示相同的條目。任何幫助?
我增加了一些代碼,希望它會顯示一些東西。 – cohs
你是什麼意思「它顯示相同的條目」? eventDictionary只有1個項目,或者它是正確的項目數量(你嘗試添加的項目數量),但是每個項目都是相同的? –