【发布时间】:2014-12-24 01:31:45
【问题描述】:
我想测试是否设置了 NSManageObject 子类的 NSNumber 属性。请注意,该属性是 NSNumber / Integer16 我尝试了几种方法,但都没有奏效(下面这些总是评估为假):
// Note: patient.zyklus_laenge is of NSNumber (Integer16)
// does not work
id value = patient.zyklus_laenge;
if (value == [NSNull null]) {
self.zyklusLaengeTextField.text = [NSString stringWithFormat:@"%d", 28];
} else {
self.zyklusLaengeTextField.text = [NSString stringWithFormat:@"%@", patient.zyklus_laenge];
}
// does not work
if (!patient.zyklus_laenge) {
self.zyklusLaengeTextField.text = [NSString stringWithFormat:@"%d", 28];
} else {
self.zyklusLaengeTextField.text = [NSString stringWithFormat:@"%@", patient.zyklus_laenge];
}
// does not work
if ([patient.zyklus_laenge isEqual:nil]) {
self.zyklusLaengeTextField.text = [NSString stringWithFormat:@"%d", 28];
} else {
self.zyklusLaengeTextField.text = [NSString stringWithFormat:@"%@", patient.zyklus_laenge];
}
// does not work
if (patient.zyklus_laenge == nil) {
self.zyklusLaengeTextField.text = [NSString stringWithFormat:@"%d", 28];
} else {
self.zyklusLaengeTextField.text = [NSString stringWithFormat:@"%@", patient.zyklus_laenge];
}
谁能启发我并解释为什么这些不起作用?
【问题讨论】:
-
patient.zyklus_laenge在命令行中返回什么,当它为零时? -
NSLog 显示:
patient.zyklus_laenge: (null) -
尝试用“=="切换“isEqual:”
-
已经试过了,看最后一个if-else,没用。 NSLog 总是显示:
patient.zyklus_laenge: (null)但else分支永远不会执行 -
不是 NSLog,而是命令行中的
po patient.zyklus_laenge。
标签: ios objective-c core-data nsmanagedobject