В этом фрагменте кода у меня есть оба NSLog, который говорит, что dict имеет счет сохранения 1.
Так как таймер может быть запущен в течение длительного времени, если в массиве много объектов, могу ли я сохранить данные в пользовательской информации? Потому что я предполагаю, что это авто-выпуск, а запланированный таймер времени с временным интервалом, похоже, не сохраняет его.
Теоретически?
Практически?
- (void) doItWithDelay
{
NSArray* jobToDo = /* get an autorelease array */
NSTimeInterval nextLaunch = 0.1;
int i=1;
for (NSDictionary* dict in jobToDo) {
NSLog(@"dict %d has %d retain count", i++, [dict retainCount]);
// HERE [dict retain] ???
[NSTimer scheduledTimerWithTimeInterval:nextLaunch target:self selector:@selector(doIt:) userInfo:dict repeats:NO];
nextLaunch += 1.0;
}
}
- (void) doIt:(NSTimer*)theTimer
{
NSDictionary* dict = [theTimer userInfo];
NSLog(@"dict has now %d retain count", [dict retainCount]);
// Do some stuff with dict
}