i want to remove some objects from a NSMutableDictionary after some Time.
I have:
//first Method start
PedObjectTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(fireTimer:) userInfo:PedMessage repeats:YES];
[PedMessage setObject:PedObjectTimer forKey:@"Timer"];
[PedObjects setObject:[PedMessage copy] forKey:[PedMessage objectForKey:@"ObjectID"]];
//first Method end
- (void) fireTimer:(NSTimer*)theTimer {
NSLog(@"%@",PedObjects);
[PedObjects removeObjectForKey:[[theTimer userInfo]objectForKey:@"ObjectID"]];
NSLog(@"%@",PedObjects);
[theTimer invalidate];
theTimer = nil;
}
A problem is that i cant copy the Timer Object to the dictionary…
How can i delete the right one after 2 sec in the fireTimer method?
with this i get the same result , if i have 2 selectors it will not remove 2 entries in my dictionary…
[PedObjects setObject:[PedMessage copy] forKey:[PedMessage objectForKey:@"ObjectID"]];
[self performSelector:@selector(delete:) withObject:[PedObjects objectForKey:[PedMessage objectForKey:@"ObjectID"]] afterDelay:2.0];
-(void)delete:(NSMutableDictionary*)dict
{
NSLog(@"%@",[PedMessage objectForKey:@"ObjectID"]);
NSLog(@"%@",PedObjects);
[PedObjects removeObjectForKey:[dict objectForKey:@"ObjectID"]];
NSLog(@"%@",PedObjects);
}
You could use something like this:
Instead of a timer, you call