银行账户iOS应用程序结构

时间:2014-05-28 18:06:38

标签: ios objective-c

在课程的最后一个学期,课程必须使用C ++为银行帐户建模。本学期我们正在做同样的事情,除了在objective-c和iOS应用程序的形式。我刚刚开始并设置了一个基本的故事板来测试我的存款,但是我无法将总余额加起来,我很确定这是因为我用存款IBAction实例化我的账户对象。该如何正确完成?我只需要向正确的方向推进,我相信我可以从那里开始与其他人一起跑。见附件:

- (IBAction)deposit:(id)sender {

Account *acc =[[Account alloc]init];

double damount = [_textField.text doubleValue] ;

[acc deposit:(damount)];


_display.text = [NSString stringWithFormat:@"%f", acc.getBalance];
}

请求的原始C ++代码:

int main(){
char szFName[32];
char szLName[32];
char szSIN[12];
char szAccType[10];
double dBalance;
int op;
Account *acc[MAX_ACCOUNTS];
int count=0;
while (count<MAX_ACCOUNTS)
{
    cout << "Customer's First Name : " << flush;
    cin >> szFName;
    cout << "Customer's Last Name : " << flush;
    cin >> szLName;
    cout << "Customer's SIN : " << flush;
    cin >> szSIN;
    cout << "Account Type : " << flush;
    cin >> szAccType;
    cout << "Opening Balance : " << flush;
    cin >> dBalance;

    if ( !strcmp(szAccType,"Checking") )
        acc[count] = new CheckingAcc(szFName, szLName, szSIN, szAccType, dBalance);
    else if ( !strcmp(szAccType,"VIP") )
        acc[count] = new VIPAcc(szFName, szLName, szSIN, szAccType, dBalance);
    else if ( !strcmp(szAccType,"Saving") )
        acc[count] = new SavingAcc(szFName, szLName, szSIN, szAccType, dBalance);
    else
    {
        cout << "Incorect account type." << endl;
        continue;
    }
    count++;
}

1 个答案:

答案 0 :(得分:0)

您遇到的问题是,您每次都要创建一个新的银行帐户,而不是维护一个帐户并添加到该帐户。

在原始程序中,您创建了一系列帐户acc,这些帐户在用户输入的生命周期内保持不变。由于您已经从程序程序转移到具有运行循环的UI程序,因此您需要一个更持久的位置来存储它。

通常情况下,如果对象需要比视图控制器持续更长时间,那么一个好位置将是视图控制器上的属性或更高位置:

@property Account *account;

...

- (id)init
{
    if (self) {
        _account = [[Account alloc] init];
    }
    return self;
}

...

[self.account deposit:(damount)];

由于这是针对课程的,因此您可能希望查看教科书中的属性和实例变量等主题。