2011-02-15 58 views
0

如果我用這個東西開始:performSelector和匹配cancelPreviousPerformRequestWithTarget

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

其中1我應該在以後使用取消它,避免「runThis:」從以往運行?

 
1> [NSObject cancelPreviousPerformRequestsWithTarget:self]; 

 
2> [NSObject cancelPreviousPerformRequestsWithTarget:self 
2> selector:@selector(runThis:) 
2> object:nil]; 

甚至不知道的差別真的是1和2是#1之間

取消任何/所有我performSelector的,不管他們的名字是什麼?

#2取消只有一個,特別是「runThis:」?

(如果我有3個不同的performSelector運行 「runThis:」 我怎麼會指定一個取消......用1號或2號?)

#1似乎正常取消的事情。

#2似乎沒有取消任何東西....永遠。

是否有關係,當我開始時通過thisObject ...和零取消時?

回答

1

IIRC任何一個都沒問題;第二個只是給你更細粒度的控制。

對於#2,您必須傳入一個對象,該對象返回YES-isEqual:nil對於該方法並不意味着「任何東西」,這與NSNotification的東西不同。