Я делаю это довольно часто в одном из моих приложений.Мой подход состоит в том, чтобы инициализировать объект с:
-(id)initWithEntity:(NSEntityDescription *)entity insertIntoManagedObjectContext:(NSManagedObjectContext *)context
передачей nil для контекста.Чтобы получить описание сущности, вам нужен доступ к managedObjectContext.Я склонен получать описание сущности при запуске моего приложения, а затем сохранять его в переменной экземпляра в моем делегате приложения.
Вот пример:
//inside my "Engine" class
self.tweetEntity = [NSEntityDescription entityForName:@"Tweet" inManagedObjectContext:self.moc];
//later on when I want an NSManagedObject but not in a managed object context
Tweet *tweet = [[[Tweet alloc] initWithEntity:self.engine.tweetEntity insertIntoManagedObjectContext:nil] autorelease];
Это позволяет мне использовать NSManagedObjects безхранение их в базе данных.Позже, если я решу, что я хочу, чтобы объект был вставлен в мою базу данных, я могу сделать это, вставив его в контекст моего управляемого объекта:
[self.moc insertObject:tweet];