1

我的项目中有以下类:

  • 卡车
  • 自行车
  • 飞机

用户使用输入初始化每个类。例如,对于 Car,它们使用模型、品牌等进行初始化。

我有使用键值验证来验证每个模型中的所有属性的验证函数。

然后,对于每个验证函数,我为该函数设置 NSError 输入参数。

问题是我有超过 20 个错误代码与超过 20 个错误描述相匹配。例如,如果用户没有输入有效的汽车型号,他们会收到错误代码 1000,错误描述为“请输入有效的汽车型号”。现在,我在所有这些模型的父类中的函数内使用长 switch 语句来匹配每个错误代码和错误描述,并为每个子类验证函数创建适当的 nserror 对象。是否有更好、更易于管理的方法来处理 20 多个错误代码到错误描述的映射?

另外,另一个问题,错误代码应该有多具体?例如,如果 car model 为 nil 或 car model 不是有效模型(不是 nil,只是无效),则两者之间的错误代码是否应该存在差异。

4

2 回答 2

0

您可以使用字典。将错误代码转换为NSNumber实例,并将关联值设置为错误描述。然后,当您创建错误时,只需从字典中获取描述。

于 2013-10-20T20:12:55.270 回答
0

我不完全理解您的情况,但您应该在添加错误代码的同时添加错误描述,即在创建NSError对象时。

[NSError errorWithDomain:@"aDomain" code:1 userInfo:@{NSLocalizedDescriptionKey: @"Please input valid car model."}];

然后,当您需要向用户显示错误时,只需从错误中获取描述:

NSString *errorText = error.userInfo[NSLocalizedDescriptionKey];

于 2013-10-20T20:19:37.683 回答