【问题标题】:Core Data divide two valuesCore Data 将两个值相除
【发布时间】:2011-04-24 06:02:54
【问题描述】:

在我完全使用 Core Data 和绑定编写的项目中,我有两个包含浮点值的文本字段。我想制作第三个文本字段,即第一个字段除以第二个字段。使用 Core Data 解决此问题的最佳方法是什么?我应该为第三个字段创建一个自定义访问器吗?

【问题讨论】:

    标签: cocoa core-data interface-builder cocoa-bindings accessor


    【解决方案1】:

    在您的 NSManagedObject 子类中创建一个方法 -thirdValue 来进行计算:

    - (CGFloat)thirdValue
    {
      return value1 / value2; // should probably do a value2 != 0 check
    }
    

    然后为类 +keyPathsForValuesAffectingValueForKey:

    + (NSSet *)keyPathsForValuesAffectingValueForKey:(NSString *)key
    {   
        NSSet *superSet = [super keyPathsForValuesAffectingValueForKey:key];
    
        if ([key isEqualToString:@"thirdValue"])
            return [[NSMutableSet setWithObjects:@"value1", @"value2", nil] unionSet:superSet];
    
        return superSet;
    }
    

    这会将thirdValue 设置为依赖于value1 和value2。每当 value1 或 value2 发生变化时,也会有关于 thirdValue 的 KVO 通知。因此,如果您有一个绑定到它的字段,该字段将显示新的计算值。当您需要显示值依赖于其他键的键时,这是一个方便的技巧。

    【讨论】:

    • 最好调用super 并将返回的集合与正在创建的集合合并,或者如果键不是thirdValue,则返回super 返回的集合。跨度>
    • 是的,答案已使用此添加进行编辑。原件是用网站编辑器写的一个快速而肮脏的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-21
    • 2012-05-07
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    相关资源
    最近更新 更多