【iOS之線程間通信】
Cocoa為iOS線程間通信提供2種方式,1種是performSelector,另1種是Port。
先說第1種,performSelector,有以下幾種:
第2種為NSMachPort方式。NSPort有3個子類,NSSocketPort、NSMessagePort、NSMachPort,但在iOS下只有NSMachPort可用。
使用的方式為接收線程中注冊NSMachPort,在另外的線程中使用此port發送消息,則被注冊線程會收到相應消息,然后最終在主線程里調用某個回調函數。
可以看到,使用NSMachPort的結果為調用了其它線程的1個函數,而這正是performSelector所做的事情,所以,NSMachPort是個雞肋。線程間通信應該都通過performSelector來搞定。

