Код из C # в Objective-C для конструкторов - PullRequest
3 голосов
/ 08 октября 2011

Мы должны преобразовать наш код 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;
        }
        }
}

}

И это то, что я до сих пор имею для Объектива С, не уверенного, верна она или нет

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

@public Account()
   }

Открыта для любой помощи, которую я могу получить, большое спасибо, Дэнни

Ответы [ 2 ]

3 голосов
/ 08 октября 2011

вы просто предоставляете два инициализатора, которые принимают общую форму:

@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 голосов
/ 08 октября 2011

Цель C немного отличается от других языков.У него более странный синтаксис по сравнению с другими языками.Хотя из того, что я видел, кажется, что вы еще мало что узнали о объективе-c.Я бы порекомендовал вам взглянуть на документацию Apple или получить книгу, чтобы узнать, как работает синтаксис target-c.Изучение синтаксиса не займет много времени, но вот как вы должны это сделать.


@interface NSObject : Account
{
@private
double balance;
int accountNumber;
}
-(void)account; //No Arguements
-(void)account:(int)accNum withBalance:(double)bal; //2 Arguements

@implementation Program

-(void)account
{
balance = 0;
accountNumber = 999;
}

-(void)account:(int)accNum withBalance:(double)bal
{
balance = bal;
accountNumber = accNum;

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...