0
我有一个核心数据对象的奇怪问题。使用核心数据返回空值
我有这样的对象:
2012-12-17 20:20:54.756 test[8581:c07] <NSManagedObject: 0xaa52ef0> (entity: Card; id: 0xaa4ec40 <x-coredata://CF3F8F22-FE94-452E-9BFB-D4216847C8D4/Card/p14> ; data: {
chlore = 0;
"continue_filtering" = 1;
"created_at" = "2012-12-01 09:55:05 +0000";
customer = "0x7533700 <x-coredata://CF3F8F22-FE94-452E-9BFB-D4216847C8D4/Customer/p1>";
"cyanuric_acid" = 9;
date = "2012-12-01 00:00:00 +0000";
"electricity_day_used" = 67;
"electricity_night_used" = 67;
"end_time" = "2012-12-01 10:54:00 +0000";
"filtering_end" = "2000-01-01 09:54:00 +0000";
"filtering_start" = "2000-01-01 09:54:00 +0000";
furniture = 1;
"furniture_to_get" = "";
heater = 0;
id = 39;
miscellaneous = Zer;
ph = "7,2";
"regulation_temperature" = 56;
"start_time" = "2012-12-01 10:54:00 +0000";
"treatment_anti_algae" = 5;
"treatment_auto_stop_filling" = 0;
"treatment_chlore" = 5;
"treatment_filling_start" = 0;
"treatment_floculant" = 0;
"treatment_hypo_stick" = nil;
"treatment_hypochlorite" = 5;
"treatment_pebble" = 5;
"treatment_ph_less" = 5;
"treatment_ph_plus" = 5;
"updated_at" = "2012-12-01 09:55:05 +0000";
"water_quality" = "Eau bleue limpide";
"water_used" = 56;
works = (
);
})
但是当我做card.treatment_ph_less返回null。你有什么想法,为什么?这个问题的根源是什么?
我的字段被定义为double。
我不明白的是:当我做卡片。调节温度,我得到了“56”。但是对于所有的“处理_ *”属性,我得到了空...如果我在坏的托管对象上下文中,一切都将为空,对吧? – Sebastien
我不知道它是否可以帮助,但有唯一的字段声明为double ... – Sebastien
如果您的托管对象在不同的线程/队列上,而不是它所属的上下文创建的,那么技术上的行为会未定义。我不得不承认Core Data如何将事物描述为文字(经典的他们都是对象)的经验有限,所以我不能凭经验确切地说出什么是未定义的行为。尽管如果你正在使用正确的队列/线程进行对象访问,那么我肯定可以说我的猜测是错误的。 – Tommy