Core data 在NSManagedObject';什么是定制类?
一般来说。。。在NSManagedObject类中,在给定float动态属性的一个setter中,可以对该setter中相同NSManagedObject的其他float动态属性使用点语法getter吗?或者,在访问某个值时,我是否需要使用符合KVC的CoreData访问器,即使它来自与所访问值的实际getter不同的方法?我假设以这种方式调用点语法会触发我的另一个自定义访问器,这对我来说没问题,因为里面有正确的KVC原语访问器。但我似乎遇到了一些奇怪的问题,点语法要么失败了,要么出现了不可预测的结果,我不确定这是因为我以一种不安全的方式使用点语法,还是因为我还没有发现其他一些错误 下面是我所说的代码示例:Core data 在NSManagedObject';什么是定制类?,core-data,nsmanagedobject,key-value-observing,kvc,Core Data,Nsmanagedobject,Key Value Observing,Kvc,一般来说。。。在NSManagedObject类中,在给定float动态属性的一个setter中,可以对该setter中相同NSManagedObject的其他float动态属性使用点语法getter吗?或者,在访问某个值时,我是否需要使用符合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.");
}
}
你能给我举一个你所说的setter的代码例子吗?一般来说没问题,但我同意,看到实际的代码会很好。我也同意,一些代码片段会很棒。没有这些额外的信息,我只能说你的“还有一些其他的bug”似乎是真的