Использование 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 не загружается до тех пор, пока вы не попытаетесь его запустить.