繁体   English   中英

Java class 至 objective-C class

[英]Java class to objective-C class

我需要知道 Objective-C 中以下代码的等效代码是什么

public MyClass(int x, int y) {
        xCoOrdinate = x;
        yCoOrdinate = y;
    }

    public int getXCoOrdinate() {
        return xCoOrdinate;
    }

    public int getYCoOrdinate() {
        return yCoOrdinate;
    }
    public MyClass func() {
        return new MyClass(xCoOrdinate - 1, yCoOrdinate);
    }

这是我试过的:

    -(id)initWithX:(int )X andY:(int)Y
{
    if(self = [super init])
    {
        self.xCoOrdinate = X;
        self.yCoOrdinate = Y;

    }
    return self;
}
-(MyClass *)func
{

    return [self initWithX:(self.xCoOrdinate -1)  andY:self.yCoOrdinate];
}

这是正确的方法吗?

否。您需要返回 class 的新实例:

-(MyClass *)func
{
    return [[[[self class] alloc] initWithX:(self.xCoOrdinate - 1)  andY:self.yCoOrdinate] autorelease];
}

请注意,我们使用[[self class alloc]创建当前 class, MyClass的新实例。

一些更正:

public int getXCoOrdinate() {
    return xCoOrdinate;
}

会成为:

- (int)getXCoOrdinate
{
    return [self xCoOrdinate];
}

public MyClass func() {
    return new MyClass(xCoOrdinate - 1, yCoOrdinate);
}

会成为:

+ (MyClass*)func
{
     MyClass* newFunc = [[MyClass alloc] initWithX:0 Y:0];

     if (newFunc)
     {
     }
     return newFunc;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM