0
如果我在NSInvocation
上致電invoke
,是否與致電performSelector:
的參數waitUntilDone:YES
相同?也就是說,invoke
是否會阻止執行,直到被調用的選擇器完成爲止?[NSInvocation調用]是否阻塞執行直到完成?
換句話說,以下兩條代碼行是否完全一樣?
// myInvocation is of type NSInvocation
[myInvocation invoke];
[myInvocation performSelectorOnMainThread:@selector(invoke) withObject:nil waitUntilDone:YES];
但會阻止執行嗎?我在問,因爲NSMutableData.writeToFile:'是非阻塞的問題。見例如http://stackoverflow.com/questions/11161079/nsdata-writetofileatomically-doesnt-immediately-save-the-file – nyi 2014-09-23 14:46:43
我說它和普通的方法調用完全一樣。普通的方法調用被阻止。調用[someObject doStuff]或創建調用並調用[調用調用]與_exactly_相同。 – gnasher729 2014-09-23 14:51:31
你有一個writeToFile問題:你自己?文檔沒有提及任何關於非阻塞的內容,所以我認爲它是阻塞的。特別是因爲對於非阻塞呼叫,必須有一些信息如何找出何時完成,並且沒有。僅僅因爲有人使用它有問題並不意味着他們是正確的。不阻塞會使該方法無法使用。 – gnasher729 2014-09-23 14:53:41