【问题标题】:performSelector and matching cancelPreviousPerformRequestWithTargetperformSelector 和匹配的 cancelPreviousPerformRequestWithTarget
【发布时间】:2011-06-27 22:17:42
【问题描述】:

如果我开始使用这个:

> [self performSelector:@selector(runThis:) > withObject:thisObject > 延迟:5.0];

我以后应该使用哪个 1 来取消它,避免“runThis:”永远运行?

1> [NSObject cancelPreviousPerformRequestsWithTarget:self];

2> [NSObject cancelPreviousPerformRequestsWithTarget:self 2> 选择器:@selector(runThis:) 2>对象:无];

甚至不确定 1 和 2 之间的真正区别是什么。

#1 是否取消任何/所有我的 performSelector,不管他们的名字是什么?

而#2 只取消一个,特别是“runThis:”?

(如果我有 3 个不同的 performSelector 运行“runThis:”会怎样?我将如何指定要取消哪个...使用 #1 或 #2?)

#1 似乎正确地取消了一些东西。

#2 似乎并没有取消任何东西......永远。

启动时传递 thisObject... 取消时传递 nil 是否重要?

【问题讨论】:

    标签: iphone objective-c cocoa cocoa-touch


    【解决方案1】:

    IIRC 任何一个都可以;第二个只是给你更细粒度的控制。

    对于#2,您必须传入一个对象,该对象为-isEqual: 返回YESnil 并不意味着该方法的“任何东西”,不像 NSNotification 的东西。

    【讨论】:

      猜你喜欢
      • 2011-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多