Базовые данные - как проверить, существует ли объектная связь без возникновения ошибки
Существует объект 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 `?`