相关疑难解决方法(0)

-performSelector:withObject:afterDelay:work?

我目前正在假设-performSelector:withObject:afterDelay:不使用线程,但安排事件在以后的日期在当前线程上触发.它是否正确?

进一步来说:

- (void) methodCalledByButtonClick {
  for (id obj in array) {
    [self doSomethingWithObj:obj];
  }
}

static BOOL isBad = NO;
- (void) doSomethingWithObj:(id)obj {
  if (isBad) {
    return;
  }
  if ([obj isBad]) {
    isBad = YES;
    [self performSelector:@selector(resetIsBad) withObject:nil afterDelay:0.1];
    return;
  }
  //Do something with obj
}

- (void) resetIsBad {
  isBad = NO;
}
Run Code Online (Sandbox Code Playgroud)

假设我们在主线程上运行,即使需要任意长的时间来完成,它是否保证-resetIsBad-methodCalledByButtonClick返回之后才会被调用-methodCalledByButtonClick

iphone cocoa-touch objective-c

32
推荐指数
2
解决办法
4万
查看次数

标签 统计

cocoa-touch ×1

iphone ×1

objective-c ×1