我有一個對象有一個方法,它在幾秒鐘之後通過委託方法返回結果。我明白,如果我在使用GCD的另一個線程上執行此操作,我可以提高我的UI性能,但是在主線程上運行的對象上實現的委託方法如何?使用GCD在iOS 5上管理代表,如何操作?
所以這一切都發生在主線程:
在頭文件:
@interface MyViewController : UIViewController <ThisRespondsToSomeDelegate>
在視圖控制器的實現文件:
SomeObject _myDealer; // INSTANCE VARIABLE OF THE OBJECT THAT IMPLEMENTS THE ThisRespondsToSomeDelegate TYPE
後來在同實施文件:
[_myDealer getSomeData];
後來,委託方法:
-(void)myDealerReturnedSomeData:data anotherArg:(id)somemoredata {...};
據我瞭解,我創建了一個* background_queue *與* dispatch_queue_create *方法比使用對象:
dispatch_async(backgroundQueue, ^(void) { [_myDealer getSomeData]; });
但我怎麼回到主線程上的委託方法? myDealerReturnedSomeData:數據如何被調用?
謝謝!
快樂編碼!
你的問題有點不清楚。 * 1. *哪個類下載數據並提供委託協議? * 2. *哪個類實現委託協議?我猜'MyViewController'實現了委託協議,'SomeObject'是一個執行簡單任務並提供委託的類。常見的模式是'SomeObject'從其內部調用委託(一旦它完成任務),所以'dispatch_async()'將在'SomeObject'的實現中被調用... – ayoy 2012-03-03 17:12:42