【问题标题】:How to write a value validation method for core data?如何编写核心数据的值验证方法?
【发布时间】:2010-06-07 20:18:55
【问题描述】:

文档说:

你应该实现 form validate:error:,由 NSKeyValueCoding 协议定义

假设我有一个 int 属性:friendAge

我想确保任何朋友都不能低于 30 岁。那么我将如何制定这种验证方法?

-validateFriendAge:error:

我到底要在那里做什么?我应该如何处理我通过的那个 NSError ?我认为它有一本字典,我可以在其中以任意语言(即当前使用的语言)返回一个人类可读的字符串,所以我可以输出一个合理的错误,例如:“朋友不够老”......怎么做?

【问题讨论】:

    标签: iphone core-data


    【解决方案1】:

    你可以在那里做任何你想做的事情。您可以验证年龄是否介于范围或您想要的任何其他逻辑之间。

    假设存在问题,您填充错误并至少具有NSLocaliedDescriptionKey 的值。然后,该错误将被传回 UI 或任何设置此值的位置,并允许您处理验证错误。这意味着如果在调用/设置方法中可能需要其他有用的信息,您可以在此处将其添加到NSError 中并接收。

    例如:

    -(BOOL)validateFreindAge:(NSNumber*)ageValue error:(NSError **)outError 
    {
        if ([ageValue integerValue] <= 0) {
            NSString *errorDesc = @"Age cannot be below zero.";
            NSDictionary *dictionary = [NSDictionary dictionaryWithObject:errorDesc forKey:NSLocalizedDescriptionKey];
            *error = [NSError errorWithDomain:@"MyDomain" code:1123 userInfo:dictionary];
            return NO;
        }
        return YES;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-06
      • 1970-01-01
      相关资源
      最近更新 更多