从C#转换为Objective-C的构造函数代码

3
我们需要将C#代码转换为Objective-C代码,我在尝试创建一个无参数构造函数和一个带有2个参数的构造函数时遇到了困难。 以下是我正在尝试转换的C#代码:
     namespace Account
{
class Program
{

    public class Account
    {

        private double balance;
        private int accountNumber;

        public Account()
        {
            balance = 0;
            accountNumber = 999;
        }

        public Account(int accNum, double bal)
        {
            balance = bal;
            accountNumber = accNum;
        }
        }
}

以下是关于Objective C的部分,不确定是否正确:

     @interface classname : Account 
   {
@private double balance;
@private int accountNumber;

@public Account()
   }

我需要任何能得到的帮助,非常感谢,Danny

2个回答

3
你只需要提供两个初始化器,其一般形式如下:
@interface MONAccount : NSObject
@private
    double balance;
    int accountNumber;
}

/* declare default initializer */
- (id)init;

/* declare parameterized initializer */
- (id)initWithAccountNumber:(int)inAccountNumber balance:(int)inBalance;

@end

@implementation MONAccount

- (id)init
{
    self = [super init];
    /* objc object allocations are zeroed. the default may suffice. */
    if (nil != self) {
        balance = 0;
        accountNumber = 999;
    }
    return self;
}

- (id)initWithAccountNumber:(int)inAccountNumber balance:(int)inBalance
{
    self = [super init];
    if (nil != self) {
        balance = inBalance;
        accountNumber = inAccountNumber;
    }
    return self;
}

@end

0

Objective-C与其他语言有点不同。相比其他语言,它的语法更加奇怪。虽然从我所见,您似乎还没有学到太多关于Objective-C的知识。我建议您查看苹果公司的文档或者获取一本书来真正学习Objective-C语法的工作方式。学习语法不应该需要太长时间,但是下面是您应该学习它的方式。


@interface NSObject : Account
{
@private
double balance;
int accountNumber;
}
-(void)account; //不带参数
-(void)account:(int)accNum withBalance:(double)bal; //2个参数
@implementation Program
-(void)account { balance = 0; accountNumber = 999; }
-(void)account:(int)accNum withBalance:(double)bal { balance = bal; accountNumber = accNum;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接