首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >架构、业务对象、iOS的整洁实现

架构、业务对象、iOS的整洁实现
EN

Stack Overflow用户
提问于 2013-01-22 11:01:01
回答 1查看 169关注 0票数 0

我在对象C中有一个类,它代表一个通用的业务对象(为了我的问题,让我们说它是一个银行账户)。我有一个java C#背景(仅供参考)。现在,此bankAccount具有一个定义其类型的枚举属性,以及一个NSURl属性

代码语言:javascript
复制
        //this is in the bankAccount.h file
        typedef enum {Checking, Savings, Investor} AccountType;
        -(NSURL *)url;

现在,用户可以创建一个新的银行帐户,并将枚举设置为相关类型。在分配新的bankaccount对象后,他们可能需要访问url属性,所以我必须为该属性实现一个getter,它将正确地初始化它。这里我的问题是,为了正确初始化url属性,我如何知道调用类为我的银行帐户创建了哪种类型的银行帐户?

就像现在,这就是我在file account.m文件中实现url的方式:

代码语言:javascript
复制
 -(NSURL *)url {   
       if (url != NULL) {
       return url;
       }
  NSString *filePath;
  // figure out the file path base on account type
  switch (AccountType) {
  }

  return url;

}

请记住,这是在Bankaccount.m文件中,它在调用类中并不知道正在创建的实例是什么。也许我很困惑,也许这是一个简单的答案,但我无法理解这个概念。

感谢你们的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-22 12:01:21

我想您忘记了不能将信息确切地保存在枚举中。将枚举的值保存在某个变量中。您不必像这样设置您的代码,但这可能更符合您的需求。

代码语言:javascript
复制
// BankAccount.h
#import <Foundation/Foundation.h>
typedef enum {
    Checking = 1,
    Savings = 2,
    Investor = 3
} AccountType;

@interface BankAccount : NSObject
-(void)setAccountType:(AccountType)theType; //Setter
-(NSURL *)url;
@end

// BankAccount.m
#import "BankAccount.h"
@implementation BankAccount

-(void)setAccountType:(AccountType)theType {
    self.bankAccountType = theType;
}

-(NSURL *)url {
    NSURL *someUrl;
    switch (self.bankAccountType) {
        case Checking:
            someUrl = [NSURL URLWithString:@"http://xzyChecking"];
            break;
        case Savings:
            someUrl = [NSURL URLWithString:@"http://xzySavings"];
            break;
        case Investor:
            someUrl = [NSURL URLWithString:@"http://xzyInvestor"];
            break;
        default:
            someUrl = [NSURL URLWithString:@"http://xzyError"];
            break;
    }
    return someUrl;
}

@end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14450877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档