Использование AFIncrementalStore с приложением WebSockets

Я пытаюсь использовать AFIncrementalStore для приложения Mac, которое взаимодействует с App.Net. В отличие от примеров приложений, поставляемых со структурой, я использую потоковые API с подключением через веб-сокет. Для этого я использовал SocketRocket. Эти части работают нормально: я могу установить запрос соединения с ADN и получить идентификатор соединения обратно. Именно этот идентификатор соединения я предоставляю для последующих запросов к API ADN.

Моя проблема заключается в том, что стек основных данных инициализируется и запускается до того, как я получу свой первый идентификатор соединения из ADN. Я не уверен, как справиться с этой ситуацией.

В настоящее время у меня есть этот код в моем делегате приложения:

self.socketConnection = [[MUNConnectionManager alloc] init];
self.socketConnection.delegate = self;

Мой менеджер соединений реализует делегат, который перезванивает делегату приложения после получения идентификатора соединения:

# pragma mark MUNConnectionManager delegate method
- (void)didReceiveConnectionId:(NSString*)connectionId
{
    self.connectionId = connectionId;
}

Поэтому, как только этот идентификатор соединения получен, я хочу загрузить AFIncrementalStore в действие. Но, может быть, это примерно целая секунда после запуска, и мой клиент AFIncrementalStore уже выходит из строя, потому что у него нет этого идентификатора соединения.

Любые предложения приветствуются!

1 ответ

Решение

Я думаю, что, возможно, нашел ответ на это. В моем XIB у меня есть контроллер массива с включенным флажком "готовит контент". Это вызвало бы запуск хранилища данных и загрузило бы весь стек основных данных. Когда я снимаю флажок, он не загружается, и мой делегат ADN может получить идентификатор.

Так что, если кто-то еще столкнется с этим, ответом будет то, что стек CD не загружается до тех пор, пока вы не попытаетесь его запустить.

Другие вопросы по тегам