0

OpenGL Java アプリケーションを Objective-C に変換中です。これは、AmbientMovement というファイルの Java コンストラクターからのコンストラクターのコピーです。

public class AmbientMovement {

private final float         FPS;

private final Frame[]               FRAMES;
private final int           NUMBER_FRAMES;
private final float         CYCLE;
private final Random            RANDOM;
private int             indexAmbient;
private float               timeAmbient;
private float               timeCurrent;

public AmbientMovement(Frame[] frames, float fps) {

    this.FPS              = fps;

    this.FRAMES           = frames;
    this.NUMBER_FRAMES    = frames.length;

    Frame lastframe       = frames[this.NUMBER_FRAMES - 1];
    this.CYCLE            = lastframe.getTime() + lastframe.getDuration();
    this.RANDOM           = new Random();

    this.resetClock();
}

これは、iOS 6 および X-Code 4.5 用の Objective-c を使用してコードを記述しようとする私の試みです。

AmbientMovement.h

    #import "VA-Frame.h"
    #import "VA-TRSet.h"
    #import "VA-Morph.h"
    #import "VA-Quaternion.h" 
    #import "math.h"

    @interface VA_AmbientMovement : NSObject{

    /* Private members */
    @private {
        @property float const*  FPS;
        @property int const*    NUMBER_FRAMES;
        @property float const*  CYCLE;
        @property int           indexAmbient;
        @property float         timeAmbient;
        @property float         timeCurrent;
    }

}

AmbientMovement.m

#import "VA_AmbientMovement.h"

@implementation VA_AmbientMovement

/* Initialise the AmbientMovement constructor */
-(id)initAmbientMovement:(Frame[])frames AndFPS :(float)fps{
    self=[super init];
    if(self){
        FPS                 = 0;
        NUMBER_FRAMES       = 0;
        CYCLE               = 0;
        indexAmbient        = 0;
        timeAmbient         = 0;
        timeCurrent         = 0;

        Frame* frame = [[Frame alloc]      initAmbientManager:frames AndFPS:fps];
        TRSet* trset = [[TRSet alloc]      initAmbientManager:frames AndFPS:fps];
        Morph* morph = [[Morph alloc]      initAmbientManager:frames AndFPS:fps];
        Quaternion* quat   = [[Quaternion alloc]    initAmbientManager:frames AndFPS:fps];
    }
    return self;
};

-(id)init{
    return [self initAmbientMovement:0 AndFPS: 0];
};

私が混乱している主な事柄の 1 つは、型クラスのパラメーターを渡す方法です。Java では、これは「Frame[] フレーム」を通じて行われます。次の行「(Frame[])aframes」を使用して Objective-C でこれを実行できますか、それとも間違いですか?

どうもありがとう

4

1 に答える 1

4

そこにあるものは問題なく機能しますが、一般的に、objective-cで配列を渡す場合は、cスタイルの配列ではなくNSArrayまたはのいずれかを使用する必要があります。NSMutableArray

于 2013-01-21T21:50:11.807 に答える