scheduledTimerWithTimeInterval vs performselector with iOS 5.0延迟

Par*_*dhi 10 iphone objective-c nstimer ios5 performselector

我正在使用scheduledTimerWithTimeInterval进行函数调用.我只是检查特定Web服务的xml解析是否完成,并在获得成功响应后使didEndElement方法中的计时器失效.

timerForStopWebService = [NSTimer scheduledTimerWithTimeInterval:30.0 target:self selector:@selector(stopWS) userInfo:nil repeats:NO];
Run Code Online (Sandbox Code Playgroud)

现在我面临iOS 5.0的问题,并且在其他iOS版本中工作正常.在iOS 5.0中,即使我使其无效,也可以随时调用函数stopWS.如果你有解决方案,请告诉我.

现在我正在实现具有延迟的performselector并在stopWS中设置布尔变量以识别解析是否已完成.我只是想知道这有什么重大区别吗?这个解决方案能解决我的问题吗?

如果有其他方式,请建议我,谢谢.

Abh*_*nit 21

这是你的不同之处

performSelectorWithObjectAfterDelay

  • 顾名思义,在指定的秒数后执行选择器.一次.

  • 您需要注意的是,在释放执行选择器的对象之前,您需要取消任何先前的执行请求.为此使用cancelPerformSelector方法.

scheduledTimerWithTimeInterval

  • 此方法对你太调用指定的持续时间后选择的能力,但它也有一个参数[重复:],让你拨打同一个选择Gz重复

  • 您还可以将调用传递给调用选择器,这在选择器需要大量参数时特别有用.

  • 当不再需要时,您需要使计时器无效.这应该可以解决问题

    [myTimer invalidate]; myTimer = nil;

这也是NSTimer上最权威的主题,请看一下.我如何使用NSTimer?