0

我有一个充满虚拟机的表,我有 2 个数据类型为 NSIndexPath 的变量,称为:selectedindexpath(用户单击的行)和 selectedindexpathFortheVMtoTurnOn(因此它知道当 VM 启动时要重新加载哪一行);这两个都是在 .h 中作为 @paramters(retain) ..

我有一个打开虚拟机的功能和一个功能,如果来宾最终打开,则使用 NSTimer 每 1 秒检查一次,然后它重新加载 selectedindexpathFortheVMtoTurnOn 的行,我对 OFF/REBOOT 做同样的事情,但我有这个问题。 . 我无法为超过 1 个 VM 请求操作 .. 因为它用我发送操作的最后一行覆盖 selectedindexpathFortheVMtoTurnOn 值,并且这样做表响应奇怪并且应用程序崩溃.. 这就是为什么我想用 NSTimer 将 indexpath.row 值作为参数提供给每 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);我得到了它曾经拥有的 selectedindexpathFortheVMtoTurnOn 的完全不同的值..

我究竟做错了什么。?

抱歉,如果它是一堵文字墙。但我真的需要解决这个问题,因为这将在下周在我的实习生所在公司的应用商店中以 BETA 的形式发布。

提前。

编辑:

这次我会尝试用图片来展示它。起初,我使用 VM 的 http://imageshack.us/photo/my-images/194/schermafbeelding2011052l.png/查看视图, 然后我可以按下带有箭头的按钮,然后我可以选择我想做的事情。 http://imageshack.us/photo/my-images/822/schermafbeelding2011052r.png/ 出现一个活动指示器,并在操作完成后停止。(这与每 1 秒检查一次的 NStimer 有关) http:/ /imageshack.us/photo/my-images/828/schermafbeelding2011052y.png/ http://imageshack.us/photo/my-images/811/schermafbeelding2011052t.png/ 但是当我尝试在 2 个或更多 VM 上执行操作时,我选择的最后一行的活动指示器旋转 *x 更快(取决于如何我发送了很多动作.. 2 个动作意味着它的旋转速度快了 2 倍..(太奇怪​​了)

..我希望这足以让你理解我现在的意思=)

4

1 回答 1

1

由对象触发的方法NSTimer始终将计时器作为参数。你可以得到这样的行。

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

    NSLog(@"%d", indexPath.row);
}
于 2011-05-25T08:47:01.040 回答