Ответ 1
2-й абзац обзора документации класса NSManagedObject:
Управляемый объект связан с описание объекта (экземпляр NSEntityDescription), который обеспечивает метаданные об объекте (включая имя объекта, что объект представляет и имена его атрибуты и отношения) и с контекст управляемого объекта, который отслеживает изменения в графе объектов. это важно, чтобы управляемый объект правильно настроен для использования с Core Данные. Если вы создаете экземпляр управляемого объекта, вы должны вызвать назначенный инициализатор (InitWithEntity: insertIntoManagedObjectContext:).
Из документации метода:
Важно. Этот метод является назначенный инициализатор для NSManagedObject. Тебе не следует инициализировать управляемый объект просто отправив его init.
Документация на самом деле очень хорошая.
Вы не хотите пытаться использовать NSManagedObject за пределами жизнеспособного стека CoreData. NSManagedObjects явно разработаны для работы в правильно настроенной среде Core Data. Если вам нужен временный экземпляр, вы можете создать хранилище в памяти или создать его в своем обычном магазине и просто не сохранять изменения, не удаляя их в первую очередь.