0

所以我正在考虑将一些为我的 ios 应用程序编写的逻辑移植到服务器上。我正在构建视图层次结构,然后将其光栅化为位图

我已经使用chameleon成功地将相关位移植到 mac os。

现在我想尝试将它移植到 ubuntu,因为 GNUstep 在 AppKit 上有一个开放的实现。我设法让 hello world 应用程序正常工作。但是,对我来说,以下在编译时引发错误似乎很奇怪。

#import <Foundation/Foundation.h>
#import <AppKit/AppKit.h>

int main (int argc, const char * argv[])
{
        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    [NSApplication sharedApplication];
        NSRunAlertPanel(@"Random",@"hello from GNUStep Appkit!",@"close this window",@"Another Button",nil);
    NSView *view = [[NSView alloc]init];
    view.layer;
    CGRect rect;
        [pool drain];
        return 0;
}

错误:

hello.m: In function ‘main’:
hello.m:10:6: error: request for member ‘layer’ in something not a structure or union
hello.m:11:2: error: unknown type name ‘CGRect’

对我来说,应该抛出这些错误似乎很奇怪,因为我认为 coregraphics 位于 AppKit 之下。我是否缺少 gnustep 中的特定模块?

4

1 回答 1

0

据我所知,CoreGraphics 没有在 GNUstep 中实现。我相信虽然Cocotron有一个实现。

该错误error: request for member ‘layer’ in something not a structure or union指的是view.layer您打算从对象返回layer属性的表达式。view该语法来自 Objective-C 2.0,GNUstep 不支持开箱即用,最后我知道;检查ObjC2FAQ以获取有关启用它的信息(以及它对 GNUstep 的限制是什么)。

同时,您可以改用原始的 Objective-C 语法:[view layer].

于 2013-04-22T22:01:16.190 回答