gpt4 book ai didi

ios - 将KVO添加到核心数据的类别属性

转载 作者:行者123 更新时间:2023-12-01 19:03:58 25 4
gpt4 key购买 nike

例如,我有一个具有两个属性的NSManagedObject类,我有一个返回这两个属性的结果的类别。贝娄是一些描述问题的代码。我想做的是允许其他类为该新属性添加观察者,并在此属性发生更改时进行更新。我想我应该做的是让 class 观察自己,但是我不确定在哪里添加这些观察者。

@interface ClassA : NSManagedObject

@property (nonatomic, retain) NSNumber * number;
@property (nonatomic, retain) NSSet *classBs;
@end

@interface ClassB : NSManagedObject
@end

@interface ClassA (category)
@property(nonatomic, readonly) CGFloat result;
@end

@implementation ClassA (helper)
-(CGFloat) result{
if (self.classBs.count == 0){
return 0.0;
}
return (float) self.number.floatValue / (float)self.classBs.count;
}
@end

最佳答案

请参见Registering Dependent Keys,您将了解可以提供遵循+(NSSet*)keyPathsForValuesAffecting<Key>模式的类方法,如下所示:

+ (NSSet*) keyPathsForValuesAffectingResult
{
return [NSSet setWithObjects:@"number", @"classBs", nil];
}

如果您将该方法添加到类别中,则每当 resultnumber更改时,都应适当通知观察者 classBs已更改。

关于ios - 将KVO添加到核心数据的类别属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20979245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com