1

我正在尝试将 AFIncrementalStore 用于与 App.Net 对话的 Mac 应用程序。与框架附带的示例应用程序不同,我使用流式 API 和 websocket 连接。为此,我使用了 SocketRocket。这些部分工作正常:我能够建立到 ADN 的请求连接并获取连接 ID。这是我为以后对 ADN API 的请求提供的连接 ID。

我的问题是核心数据堆栈在我从 ADN 取回我的第一个连接 ID 之前已初始化并触发。我不确定如何处理这种情况。

目前,我的应用程序委托中有此代码:

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

我的连接管理器实现了一个委托,它在收到连接 ID 时回调应用程序委托:

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

因此,一旦收到此连接 ID,我就想将 AFIncrementalStore 启动到行动中。但这可能是在启动后整整一秒左右,而我的 AFIncrementalStore 客户端已经崩溃了,因为它没有那个连接 ID。

任何建议表示赞赏!

4

1 回答 1

0

我想我可能已经找到了这个问题的答案。在我的 XIB 中,我有一个带有“准备内容”复选框的阵列控制器。那将触发数据存储并加载所有核心数据堆栈。当我取消选中该框时,它不会加载,并且我的 ADN 代表可以随意提取 ID。

因此,如果其他人遇到这种情况,答案是 CD 堆栈在您尝试点击它之前不会加载。

于 2013-07-28T02:44:01.733 回答