0

一般来说......在 NSManagedObject 类中,在给定浮动动态属性的设置器之一中,是否可以将点语法获取器用于该设置器中同一 NSManagedObject 的其他浮动动态属性?或者我是否需要使用任何符合 KVC 标准的 CoreData 访问器我何时访问一个值,即使它来自与正在访问的值的实际 getter 不同的方法?我会假设以这种方式调用点语法会导致我的其他自定义访问器触发,这对我来说没问题,因为里面有适当的 KVC 原始访问器。但是我似乎遇到了奇怪的问题,点语法要么只是失败,要么似乎有不可预测的结果,我不确定是不是因为我以不安全的方式使用点语法,或者如果还有其他一些我还没有弄清楚的错误。

这是我正在谈论的代码示例:

- (void)illTakeYouToTheWoodshed {
    float h = self.SSx.floatValue/self.yourMomsCurrentWeightInTons.floatValue;
    [self willChangeValueForKey:@"SSy"];
    [self setPrimitiveValue:@(h) forKey:@"SSy"];
    [self didChangeValueForKey:@"SSy"];
    [self diagonal]; //makes sure nd gets set
}

- (void)setSSx:(NSNumber *)value{
    [self willChangeValueForKey:@"SSx"];
    [self setPrimitiveValue:value forKey:@"SSx"];
    [self didChangeValueForKey:@"SSx"];
    if(self.WorH==syanara || self.WorH == dude_wtf) {
        if(self.SSy.floatValue != 0.0) {
            [self doThatFunkyDance];
            [self diagonal]; 
        } else if (self.youBetcha.floatValue != 0.0) {
            [self whatTheFrakDoesThisEvenDo];
        }
    } else if (self.WorH==fooBarTastic) {
        if(self.yourMomsCurrentWeightInTons.floatValue != 0.0) {
            [self illTakeYouToTheWoodshed];
        }
    } else {
        NSLog(@"Escaped with salad not having been tossed.");
    }
}
4

0 回答 0