0

我在特定时间间隔运行方法时遇到问题。我有一个方法。据我所见,存储第二个值(mynumber)的变量未正确读取。mynumber 假设可以保存从网站提取的 200 秒,但它似乎不起作用。displayinterstitial 在相当短的时间内被调用。我希望得到一些指向正确方向的指针。

-(void)connectionDidFinishLoading:(NSURLConnection*)connection
{
  NSString *theResult = [[NSString alloc] initWithBytes:[webData mutableBytes] 
                                                 length:[webData length]
                                               encoding:NSUTF8StringEncoding];
  NSLog(@"xml : %@",theResult); 
  mynumber =[theResult doubleValue];
}

-(void)test
{
  if(Callcount ==1)
  {
    [self performSelector:@selector(displayInterstitial)
               withObject:nil
               afterDelay:mynumber];
    }
 }
4

2 回答 2

0

几乎可以肯定,test在 之前调用connectionDidFinishLoading,或者mynumber在调用时不是 200 test。您是否验证了这些调用的顺序?您是否验证了被调用mynumber点的值test

于 2012-06-18T20:51:34.143 回答
0

您是否确认在调用 performSelector 时值为 200,而不是在将值分配给 mynumber 时?您如何检查,我在测试函数中没有看到对 NSLog 的任何调用。

如果它是 200,那么您确定您没有连续多次运行代码,并且短暂的触发时间实际上是之前对 performSelector 的调用,这些调用刚刚到期?

于 2012-06-18T20:54:31.287 回答