indexpath作为参数

时间:2011-05-25 08:41:48

标签: objective-c nsindexpath

我有一个填充了VM的表,我有2个数据类型为NSIndexPath的变量: selectedindexpath(用户点击的行)和 selectedindexpathFortheVMtoTurnOn(因此它知道当VM继续时要重新加载的行); 这两个都是在.h中制作的@paramters(保留)..

我有一个打开VM的函数和一个用NSTimer每1秒检查一次的函数,如果客户端最后打开,那么它会重新加载selectedindexpathFortheVMtoTurnOn这一行 即时为OFF / REBOOT做同样的事情,但我遇到了这个问题..我无法为超过1个VM请求一个动作..因为它覆盖了我发送动​​作的最后一行的selectedindexpathFortheVMtoTurnOn值通过这样做,表响应很奇怪,应用程序崩溃.. 所以这就是为什么我想把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);我得到了它曾经拥有的selectedindexpathFortheVMtoTurnOn的完全不同的值..

我做错了什么。?

抱歉,如果它是一面文字。但我真的需要解决这个问题,因为这个问题将在我的traineeperiode所在的公司的appstore中作为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更快(取决于我发送的manny动作如何... 2个动作意味着它旋转速度快2倍...(太奇怪​​了)

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

1 个答案:

答案 0 :(得分:1)

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

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

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