Базовые данные - как проверить, существует ли объектная связь без возникновения ошибки

Существует объект A и объект B. Объект B имеет один атрибут, который может быть преобразован по типу (изображение), и одно отношение, которое относится к объекту A. Объект A может иметь отношение к одному и только одному объекту B, или не может.

Перечисляя массив моего объекта A, я хочу проверить, есть ли у каждого объекта A объект B. Но я не хочу вызывать ошибку для объекта B (который вызвал бы обратный imageToData NSValueTransformer). Я просто хочу знать, есть ли он там или нет. Как я могу сделать это, не перенося объект B в память?

2 ответа

Решение

Я думаю, что вы можете просто проверить

if (objectA.relationshipToB != nil) ...

Это не вызовет ошибки для связанных B объект, потому что у вас нет доступа к его свойствам.

В Свифте я получил

Не удалось найти перегрузку для '!=', Которая принимает предоставленные аргументы

ошибка. Мои отношения были правильно помечены как необязательные, но в сгенерированном NSManagedObject мой @NSManaged собственность не имела ? после этого. Так что эта проверка против nil не удалось. Я добавил ? и тогда я смогу проверить наличие отношений.

Раньше (не работал)

@NSManaged var myRelationShip: MyClass

После (работал)

@NSManaged var myRelationShip: MyClass? // <--- Added `?`
Другие вопросы по тегам