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