我有一个填充了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倍...(太奇怪了)
..我希望这足以让你理解我现在的意思=)
答案 0 :(得分:1)
由NSTimer
对象触发的方法始终将计时器作为参数。你可以得到这样的行。
-(void)gettheguestyouaskedforTOTURNON:(NSTimer *)timer {
NSIndexPath *indexPath = (NSIndexPath*)[timer userInfo];
NSLog(@"%d", indexPath.row);
}