2013-04-22 39 views
0

所以即時考慮將一些爲我的ios應用程序編寫的邏輯移植到服務器上。 我正在構建視圖層次,然後將其柵格化爲位圖coregraphics on gnustep ubuntu

我已經使用chameleon成功地將相關位移植到mac os。

現在我想嘗試將它移植到Ubuntu上,因爲GNUstep在AppKit上有一個開放的實現。我設法讓你好世界應用程序工作。但是,對我來說,下面的代碼在編譯時會出錯,這似乎很奇怪。

#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中的特定模塊嗎?

回答

0

據我所知,CoreGraphics沒有在GNUstep中實現;我相信雖然Cocotron有一個實現。

錯誤error: request for member ‘layer’ in something not a structure or union是指表達式view.layer,您打算從view對象返回layer屬性。該語法來自Objective-C 2.0,上次我知道,它並不支持GNUstep,有關啓用它的信息(以及它對GNUstep的限制),請查詢ObjC2FAQ

與此同時,您可以改爲使用原始的Objective-C語法:[view layer]

+0

GNUstep的CoreGraphics實現被稱爲Opal。 – 2013-04-22 22:19:17

+0

感謝您的信息。我猜你必須閱讀更多gnustep歷史。感謝弗雷德擡起頭來。在研究了蛋白石和cocotron後,我發現無論是cocotron還是蛋白石的corgraphics實現都不足以滿足我的需求:(考慮到我必須做的額外工作量才能嘗試併成功移植到端口,而且沒有成功保證,我可能會以及從頭開始寫一些在ubuntu上運行的東西:/ – tzl 2013-04-23 02:36:35