2011-05-25 3 views
0

я получил таблицу, которая заполняется с ВМ и у меня есть 2 переменной типа данных NSIndexPath называется: selectedindexpath (ряд, пользователь нажимает на) и selectedindexpathFortheVMtoTurnOn (так он знает, какая строка для перезагрузки, когда VM продолжалось); , который сделан как .h как @paramters (удержание).indexpath в качестве параметров

У меня есть функция, которая включает виртуальные машины и функцию, которая ПРОВЕРЯЕТ каждые 1 сек с помощью NSTimer, если гость наконец-то включен, тогда он перезагружается строка selectedindexpathFortheVMtoTurnOn im делает то же самое для OFF/REBOOT, но у меня есть проблема с этим. im не могу запросить действие более чем для 1 VM .. потому что это перезаписывает значение selectedindexpathFortheVMtoTurnOn с последней строкой, которая i отправил действие, и тем самым таблица ответила wierd, и приложение аварийно завершает работу. , поэтому поэтому я хочу дать значение indexpath.row как параметры с NSTimer для функции, которая проверяет каждые 1 секунду, я пробовал несколько вещей но никто не работал. ниже кода того, как я даю параметры

timertocallguest=[NSTimer scheduledTimerWithTimeInterval:1 
          target:self 
          selector:@selector(gettheguestyouaskedforTOTURNON:) 
         userInfo:selectedindexpathFortheVMtoTurnOn 
              repeats:YES]; 

и функция:

-(void)gettheguestyouaskedforTOTURNON:(NSIndexPath *)therow 

и когда я пытаюсь сделать NSLog("%d",therow.row); он выходит из строя ...

и NSLog("%d",therow); я получаю всю diffrent значение selectedindexpathFortheVMtoTurnOn, что он используется to had ..

что я делаю неправильно.?

извините, если его стена с текстом. но мне действительно нужно исправить эту проблему, так как это становится выпущенным как BETA nextweek в appstore для компании, где мой стажеры.

ty заранее.

EDIT:

я попытаюсь показать его с фотографиями на этот раз. Сначала im на вид с VM http://imageshack.us/photo/my-images/194/schermafbeelding2011052l.png/ после этого я могу нажать на кнопку со стрелкой, и я могу выбрать, что я хочу делать. http://imageshack.us/photo/my-images/822/schermafbeelding2011052r.png/ индикатор активности появляется и останавливается, когда действие выполняется. (Который должен сделать с NSTimer, который проверяет каждую 1 сек) http://imageshack.us/photo/my-images/828/schermafbeelding2011052y.png/ http://imageshack.us/photo/my-images/811/schermafbeelding2011052t .png/ , но когда я пытаюсь выполнить действие с двумя или более индикаторами активности в последней строке, я выбрал спины * x быстрее (в зависимости от того, как мужественные действия я отправляю .. 2 действия означают, что он вращается в 2 раза быстрее .. (так странно)

.. я надеюсь, что это достаточно для того, чтобы понять, что я имею в виду в настоящее время =)

ответ

1

метод вызывается NSTimer объект всегда имеет таймер в качестве аргумента. Вы можете получить строку следующим образом.

-(void)gettheguestyouaskedforTOTURNON:(NSTimer *)timer { 
    NSIndexPath *indexPath = (NSIndexPath*)[timer userInfo]; 

    NSLog(@"%d", indexPath.row); 
} 
+0

Что мне нужно предоставить с помощью таймера? userInfo: nil? – Oblieapps

+0

'userInfo' должно быть как есть. Все, что вы пройдете, будет сохранено. Поскольку вы хотите отправить индексный путь, это должен быть путь индекса. Затем мы можем получить доступ к значению, которое вы передали в качестве аргумента, используя метод 'userInfo' таймера. Это то, что я сделал в фрагменте кода. –

+0

спасибо, я могу указать индексный путь как параметры, но это не исправить мою проблему :( – Oblieapps

Смежные вопросы