[英]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.