我正在嘗試編寫一個繪製OpenGL多邊形的Objective C類。我設法使用NSMutableArray來存儲我的頂點座標。但是這似乎有點低效,因爲每次繪製對象時,都需要遍歷數組以將NSMutableArray轉換爲ccVertex2F []數組。Objective C在類初始化時分配原始c數組實例變量
我想要做的是將ccVertex2F數組作爲實例變量。然後在初始化時將大小設置爲點數。然而,這會引發錯誤,因爲我的數組的大小始終爲零。
我在編程Java方面很有經驗,但對C和內存管理來說是全新的。到目前爲止,這是我:
@interface PolygonNode : CCNode {
ccVertex2F * _glPoints ;
}
@property (nonatomic, readwrite) ccVertex2F * glPoints ;
@end
我對此的理解是,我創建一個實例變量,它是一個指向ccVertex2F。
在我的init方法,我有以下:
ccVertex2F sizedGlPoints [numberOfPoints * sizeof(ccVertex2F)];
_glPoints = &sizedGlPoints;
這樣做的目的是使實例變量指向我的新正確大小的數組。但是,當我在此代碼後打印尺寸_glPoints大小不會更改。
我想要做的核心是能夠選擇我的數組的大小,當我初始化類,以便我不浪費內存。
謝謝爲答覆。這工作完美! – 2012-03-28 18:39:00