Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将带有自定义参数的Java构造函数转换为Objective-C代码_Java_Ios_Objective C_Variables_Constructor - Fatal编程技术网

将带有自定义参数的Java构造函数转换为Objective-C代码

将带有自定义参数的Java构造函数转换为Objective-C代码,java,ios,objective-c,variables,constructor,Java,Ios,Objective C,Variables,Constructor,我正在将OpenGL java应用程序转换为Objective-C。这是我的java构造函数的一个副本,来自名为AmbientMovement的文件: public class AmbientMovement { private final float FPS; private final Frame[] FRAMES; private final int NUMBER_FRAMES; private final float

我正在将OpenGL java应用程序转换为Objective-C。这是我的java构造函数的一个副本,来自名为AmbientMovement的文件:

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();
}
这是我尝试使用Objective-c为iOS 6和X-code 4.5编写的代码:

环境运动

    #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;
    }

}
环境运动

#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];
};
我感到困惑的一个主要问题是,如何传递class类型的参数。在java中,这是通过“Frame[]frames”完成的。我可以在objective-c中使用以下行“(Frame[])aframes来执行此操作吗?还是我犯了错误


非常感谢

您拥有的将很好地工作-但通常在objective-c中传递数组时,您希望使用
NSArray
NSMutableArray
而不是c样式的数组。

您拥有的将很好地工作-但通常在objective-c中传递数组时,您希望使用
NSArray
NSMutableArray
而不是c样式的数组。

您可能希望使用a来存储帧。在Java和Objective-c中,您都通过传递Class类型的参数来传递Class类型的参数。您可能希望使用a来存储帧。在Java和Objective-c中,您都传递a通过传递类型为Class的参数来设置类型为Class的参数。