У меня проблема, когда у меня есть набор объектов CoreData так:CoreData отношения не соответствуют (Swift)
организации> клиента> заказ> ordersku
Где каждый из этих отношений является Одно- Слишком много.
На экране заказа это прекрасно работает для следующего:
печати (order.customer.getJSON()) - (Заказчик включает в JSON для его содержащих заказов)
[
"id": 300,
"orders": ({
customer_id = 300;
deliverydate = "<null>";
id = "-681F71DDA4B5413782A6150C10F7A314";
skus = ({
code = "CC1";
id = "-4B5C1EE9DB8745A8963F6167C6DAA4F3";
},
code = "CC2";
id = "-B3FB1A7F13334351AF9D85D9150730A1";
});
}),
]
Однако, если я попытаюсь сделать то же самое, когда шаг один объект углубляется в отношения:
print (заказ.customer.organisation.customers(). First! .getJ SON()) - (Если организация имеет только один клиент)
[
"id": 300,
"orders":(),
]
Я просто не получают никаких указаний. Это тогда оказывается проблематичным, когда я пытаюсь создать JSON для клиента по линии.
Эти два запроса выполняются непосредственно друг за другом, что означает, что состояние модели не должно меняться.
let cus1 = order.customer
print("== \(cus1.getJSON())")
let cus2 = order.customer.organisation.customers().first!
print("== \(cus2.getJSON())")
if cus1 == cus2 {
print("MATCHED")
} else {
print("UNMATCHED")
}
Это приводит к «НЕПРЕВЗОЙДЕННОМУ», несмотря на идентификаторах являются одинаковым или концептуально относится к тому же и только клиенту.
И если это помогает, ниже приведен код для метода customers(), который я использую для организации, который просто ссылается на отношения, а не пытается извлечь объекты из контекста.
func customers() -> [Customer] {
var customers = relatedcustomers.allObjects as! [Customer]
return customers
}
Вы каким-то образом создали в своем коде два отдельных экземпляра одного и того же клиента? Если это так, было бы безопаснее использовать что-то вроде 'if cus1.objectID = cus2.objectID {}' при условии, что они являются «NSManagedObjects». –