2013-10-20 64 views
1

我在我的项目中的以下类:错误代码+错误描述

  • 卡车
  • 自行车
  • 平面

用户初始化每个类的输入。例如,对于汽车,它们使用型号,品牌等进行初始化。

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

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

问题是我有超过20错误代码匹配超过20错误说明。例如,如果用户没有放置有效的汽车模型,则会得到错误代码1000,并显示错误说明“请输入有效的汽车模型”。现在,我在所有这些模型的父类中的一个函数中使用一个长开关语句,以将每个错误代码与错误描述进行匹配,并为每个子类验证函数创建适当的nserror对象。是否有更好更易于管理的方式来处理超过20个错误代码到错误描述的映射?

此外,另一个问题,错误代码应该如何特定?例如,如果汽车模型为零或汽车模型不是有效的模型(不为零,只是无效),那么两者之间的错误代码是否有差异。

回答

0

我并不完全了解您的情况,但您应该在添加错误代码的同时向您添加错误说明,即创建NSError对象时。

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

然后,当你需要呈现错误给用户,只是抓住从错误的描述:

NSString *errorText = error.userInfo[NSLocalizedDescriptionKey];

0

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

+0

我如何定义,并宣布一个NSDictionary作为一个外部变量另一个课程,以便它可以在许多课程中使用? –

+0

您可以使用返回字典的公共类方法创建类。在内部,该方法检查字典是否已加载(存储在静态变量中),如果未加载并将其返回。 – Wain