PFConfig同步调用

时间:2016-01-03 22:34:40

标签: ios parse-platform

关于 PFConfig 的快速提问。 不幸的是,我无法在后台获取当前配置,因此我需要在应用程序同步启动时调用它。

如果网络不可用,应用程序冻结在某个版本的iOS上,我想知道我是否可以在同步调用上设置一些超时。

由于

1 个答案:

答案 0 :(得分:1)

我的主要建议是调用异步并设计你的UI来处理它。例如,一个第一次运行的视图控制器,表示" hi"它准备好运行(并要求用户必须首次运行网络 - 如果他们刚刚下载了应用程序,则极有可能)。

换句话说,我认为强制配置调用同步是一个错误,但这是一种方法...

- (PFConfig *)yuckyGetConfig {
    __block PFConfig *config;
    dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);

    [PFConfig getConfigInBackgroundWithBlock:^(PFConfig *config, NSError *error) {
        config = config;
        dispatch_semaphore_signal(semaphore);
    }];

    dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
    return config;
}

这个想法是dispatch_semaphore_wait等同于一个while循环(但执行的指令少得多),直到getConfig块执行完毕。 (这个想法归功于@Rob, here,尽管他的其他建议特别针对文档api。)