相关疑难解决方法(0)

将C++与Cocoa一起使用而不是Objective-C?

我想编写使用C++和Cocoa框架的应用程序,因为Apple不支持使用Carbon 64位.C++在Linux和Windows上的实现似乎相当普遍,但在Mac OS X上似乎需要额外的Apple特定代码片段(如Obj-C包装器).苹果似乎也在强迫开发人员用Objective-C而不是C++编写,尽管我可能错了.

我试图找到一条在Mac上编写代码的路径,这种代码很容易保持跨平台.必须用C++ for Linux/Windows编写代码,然后在Objective-C中重写大部分代码效率非常低.

有没有办法用C++编写代码,这些代码将来会得到支持并在Xcode中得到支持?另外,如果可以的话,我如何在Xcode中混合使用C++和Objective-C?谢谢.

c++ cocoa objective-c language-interoperability

122
推荐指数
4
解决办法
8万
查看次数

在没有Interface Builder的情况下创建OpenGL视图

所以我试图创建一个openGL视图(在我的窗口中).我正在制作一个Cocoa应用程序.我设法通过Interface Builder创建一个,但出于教育目的,我想继续创建一个没有它.就在论文上.

这就是我告诉你即时挣扎的观点.所以到目前为止我基本上已经完成了尝试:我创建了一个继承自NSOpenGLView的新类"MyOpenGLView.h/m".我没有添加私有变量或方法只是类名.我唯一做的是覆盖initWithFrame :(在其中添加一个self = [super initWithFrame:pixelFormat:].)我在Web上读到它,你必须首先用这样的东西实例化它然后才能使用它) .这是代码:

- (id) initWithFrame:(NSRect)frameRect
{
 NSOpenGLPixelFormat *pixelFormat = [[NSOpenGLPixelFormat alloc]
                                    initWithAttributes:(NSOpenGLPixelFormatAttribute[])
                                    {
                                    NSOpenGLPFAWindow,
                                    NSOpenGLPFADoubleBuffer,
                                    NSOpenGLPFADepthSize, 32,
                                    nil
                                    }];
 self = [super initWithFrame:frameRect pixelFormat:pixelFormat];
 [[self openGLContext] makeCurrentContext];
}
Run Code Online (Sandbox Code Playgroud)

所以我有另一个名为"MyViewController.h/m"的类来处理我的View?我有我的MyOpenGLView*myView.在.m文件中,我使用以下内容:

myView = [[MyOpenGLView alloc] initWithFrame:CGRectMake(0,0,100.0,100.0)];
if (!myView) { NSLog(@"ERROR"); }
Run Code Online (Sandbox Code Playgroud)

当然,我得到错误.

我的窗口应用程序中没有移植的openGL视图.我猜它有关于被调用的方法的层次结构,但后来再次..我不确定.你可以帮我吗?

opengl macos cocoa objective-c nsopenglview

5
推荐指数
1
解决办法
4984
查看次数