Вызов для идентификатора объекта, а не для управляемого объекта:
BOOL isTemporary = [[managedObject objectID] isTemporaryID];
Подробнее см. В этом разделе Руководство по программированию базовых данных .
Я не уверен, почему вы видите пустую строку для не добавленной сущности. Если объект не был добавлен, то он должен быть извлечен контроллером полученных результатов. Похоже, вы вставили объект в контекст, но еще не заполнили его.
Если это так, вы можете использовать предикат для исключения сущностей, у которых некоторые или все их свойства пусты. Если вы в конечном итоге делаете это много, вы можете захотеть добавить свойство класса к классу, которое будет возвращать NO (через пользовательский метод получения), если объект не находится в состоянии для отображения.