我嘗試使用分佈式對象在其他進程中顯示窗口。 進程A通過顯示對話框的進程B的分佈式對象方法遠程調用。如果我試圖等待結果,會發生錯誤。 該方法看起來像這樣:ObjectiveC - 通過分佈式對象顯示窗口
-(BOOL)showWindow //method invoked through distributed objects
{
dispatch_semaphore_t sem = dispatch_semaphore_create(0);
[object showDialog:^(BOOL result){ //this methods creates and display window
NSLog(@"Block called");
dispatch_semaphor_signal(sem);
}];
dispatch_semaphore_wait(sem, DISPATCH_TIME_FOREVER);
return YES;
}
功能的ShowWindow永遠不會結束。如果我評論dispatch_semaphore_wait顯示「Block called」並顯示窗口。 我檢查了不同的變體同步,我嘗試使用dispatch_sync或異步運行此代碼,但沒有任何幫助。
我會幫助你的。 Kon