Если вы разделяете движок между несколькими объектами, то вы захотите, чтобы какой-то другой объект / синглтон обернул движок и выступил в качестве его единственного делегата. Если вы занялись программированием базы данных, тогда думайте об этом как о соединении с базой данных - вы, вероятно, не захотите, чтобы каждый контроллер представления создавал свое собственное соединение с базой данных. Вместо этого вы должны создать какой-то объект диспетчера данных, который будет совместно использоваться представлениями и, возможно, абстрагировать некоторые внутренние компоненты БД.
Если разные контроллеры представления выполняют разные задачи - такие как вход в систему, поиск пользователей, запрос сообщений и т. Д., То методы делегата в вашей оболочке должны иметь возможность передавать ответы соответствующему контроллеру представления.
Если у вас разные контроллеры представлений, вызывающие одни и те же методы (и если да, то почему?), Вы все равно могли бы перенаправить ответы обратно на соответствующие контроллеры представлений. Как говорится в документации MGTwitterEngine, «Каждый метод Twitter API возвращает строку NSString, которая является уникальным идентификатором для этого соединения.» Вам просто нужно передать объект (контроллер представления) или блок в качестве дополнительного параметра к каждому из ваших завернутых методов. Вы можете кэшировать строку идентификатора твиттера и этот объект / блок в изменяемом словаре, когда ваша оболочка отправляет ответ, а затем искать идентификатор соединения в кэше, когда пришло время обработать ответ.