0
我正在編寫一個與CPP代碼集成的iPhone應用程序,我將C接口文件用作Objective-C和CPP代碼之間的通用接口。從視圖控制器顯示新的視圖控制器
我將嘗試使用下面的代碼來顯示從我目前的觀點一個新的觀點:
viewTowController *screen = [[viewTwoController alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:screen animated:YES];
我已經使用這個代碼之前還,但它是在按鈕的單擊事件和它的工作完全正常,但我需要根據從CPP代碼生成的事件(在從CPP調用的回調函數上)顯示一些視圖。
當我打電話從CPP該代碼回調函數象下面這樣:
-(void) displayView
{
viewTwoController *screen = [[viewTwoController alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:screen animated:YES];
}
//-- C Interface Function Implementation --//
void onDisplayView(void *self)
{
[(id) self displayView];
}
我無法看到視圖中添加到屏幕上,我得到一堆下面的錯誤在控制檯登錄窗口。
2012-12-18 18:03:02.128 p2pwebrtc[5637:5637] *** _NSAutoreleaseNoPool(): Object 0x4f04520 of class UIView autoreleased with no pool in place - just leaking
Stack: (0x305a2e6f 0x30504682 0x309778ac 0x7db6 0x7d28 0x33bb 0x6fb0 0x1af865 0x1afb4a 0x1afc5e 0x62a1 0x373e 0x4672 0x39937f 0x3ca1e4 0x3ca265 0x3cc6 0x926d8155 0x926d8012)
AM我在這件事上做了什麼不對,還是有其他的方法呢?
更新**
正如我需要UI線程來執行該代碼的答案和建議爲我需要做下面的代碼:
dispatch_async(dispatch_get_main_queue(), ^{
[(id) self displayView];
});
當我把這個Objective-C函數或CPP函數中的代碼,我得到錯誤'dispatch_get_main_queue' was not declared in this scope
。
而且我使用OSX 10.5.8版和版本的Xcode 3.1.3
當我嘗試做上述代碼它給我錯誤「dispatch_async」未聲明。 – User7723337
您定位的是哪個版本的iOS? –
iOS版本10.5.8和Xcode版本3.1.3。 – User7723337