Win*_*der 18 c++ iphone objective-c objective-c++
我正在尝试混合使用C++和Objective-C,我已经完成了大部分工作,但希望在Objective-C和C++代码之间有一个单独的接口类.因此,我想在ViewController接口中拥有一个持久的C++对象.
禁止使用没有类型的'myCppFile'声明失败:
#import <UIKit/UIKit.h>
#import "GLView.h"
#import "myCppFile.h"
@interface GLViewController : UIViewController <GLViewDelegate>
{
myCppFile cppobject;
}
@end
Run Code Online (Sandbox Code Playgroud)
但是这在.mm实现文件中运行得很好(它不起作用因为我希望cppobject在调用之间保持不变)
#import "myCppFile.h"
@implementation GLViewController
- (void)drawView:(UIView *)theView
{
myCppFile cppobject;
cppobject.draw();
}
Run Code Online (Sandbox Code Playgroud)
Geo*_*che 28
您应该使用不透明指针,并且只在实现Objective-C类的文件中包含C++头.这样,您不会强制包含标头的其他文件使用Objective-C++:
// header:
#import <UIKit/UIKit.h>
#import "GLView.h"
struct Opaque;
@interface GLViewController : UIViewController <GLViewDelegate>
{
struct Opaque* opaque;
}
// ...
@end
Run Code Online (Sandbox Code Playgroud)
// source file:
#import "myCppFile.h"
struct Opaque {
myCppFile cppobject;
};
@implementation GLViewController
// ... create opaque member on initialization
- (void)foo
{
opaque->cppobject.doSomething();
}
@end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17524 次 |
最近记录: |