2010-06-16 32 views
3

我已经在Xcode中创建了一个模型,对于各种属性,我至少定义了&最大值,并且这些值在运行时由coreData执行。如何正确使用CoreData验证和错误框架?

我正在使用NSManagedObject validateValue:forKey:错误来检查用户输入值。

我有点失望,看到本地化的错误信息不是特定的,我得到一个“操作无法完成(可可错误1620)”太小的值和“操作couldn' (Cocoa error 1610)“的值太大。

它是在coreData文档中编写的,“您可以本地化托管对象模型的大多数方面,包括实体和属性名称和错误消息”。不幸的是,关于如何针对错误消息实现它并不是非常详细。

那么你如何定制错误信息?你如何本地化他们? 是否可以通过提及参考值ex的方式对其进行定制:“值应低于%@”或“值应高于%@”?

回答

0

要想自定义错误,您需要实现自定义的NSManagedObject子类,然后实现每个属性的验证方法以返回您希望的错误。

+0

事实上,验证例程已经存在并且非常通用,我不想在xcode coredata模型设计器中直接定义min max值时自定义每个nsmanaged对象。要么我找到一种方法来访问这些值,或者我最终可以通过为每个属性使用自定义最小/最大用户信息值来重新定义我的拥有者... – Xav 2010-06-16 18:26:09

+0

错误本身在CocoaErrors.h中定义。 1620是NSValidationNumberTooSmallError,而1610是NSValidationNumberTooLargeError。您也可以创建一个字典来返回枚举名称。数字代码应该是程序员和最终用户的文本错误。这就是为什么文本错误通常只包含模糊的错误报告。 – TechZen 2010-06-16 19:50:38

+0

仅当需要更改非可选属性为空时弹出的错误消息文本时才需要此操作。或者有更简单的方法来改变它吗? – Clay 2012-12-20 15:57:02