【问题标题】:iPhone : How to sync data with the web-service when internet is reachable?iPhone : 当互联网可以访问时,如何与网络服务同步数据?
【发布时间】:2012-02-02 14:08:20
【问题描述】:

我知道如何检查互联网连接。告诉我如何同步应用数据。

当互联网可用时同步如何工作?

我的困惑:

我的应用程序使用网络服务在 iPhone 和现场显示数据。现在我可以在网络可用时更新用户的工作,方法是在用户执行某些任务的同时调用 web-service。

但是当互联网不可用时,我必须将 用户的数据保存在 iPhone 中的本地(比如 SQLite),当互联网可以访问时,我必须 更新服务器上的所有数据

For Example, 

      If internet is reachable, user works on some task and I update the data on server at the dame time.

      But Now internet is not reachable, user works on `N task`. I can not update on server, I have to wait for internet 
      How can I update all task on web-server at time?

所以我的问题是:

How can I update all the data when net is available ?

任何可以帮助我的链接或代码?

【问题讨论】:

  • 你使用可达性类吗?
  • 所以你真正想要的是 SQLlite 速成课程?!?
  • @AnthonyBlake:我想要同步过程的基本知识。

标签: iphone objective-c ios cocoa-touch


【解决方案1】:

尝试将字段作为isOfflinerecord 放入您的数据库中(如果您正在使用数据库)并且当连接恢复时更新或仅插入这些数据。 这可能是您的第一步。

【讨论】:

    【解决方案2】:

    这个问题或许能帮到你。使用 Apple 的 Reachability 类。

    `How to check for an active Internet connection on iOS or OSX?

    【讨论】:

    • 我知道如何检查互联网连接。告诉我一些关于同步数据的事情
    • 好吧,这样做的方法是在有互联网时每隔一段时间向服务器发出请求,并下载最新的更新,并将它们保存在本地。根据您在线数据库的大小,您可以一次全部下载。
    • 哦!以及如何在服务器上上传应用数据?
    • 根据服务器的设置方式,您只需发送包含数据的POST 请求。使用 NSURLConnection 是最简单的 HTTP 库,但还有其他的。
    • @Devang 所以你想要 SQLLite 速成课程和 Web 服务速成课程?
    【解决方案3】:

    使用可达性类,然后你可以设置一个通知器,当网络状态发生变化时通知

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];
    
    hostReachable = [[Reachability reachabilityWithHostName: @"www.google.com"] retain];
    [hostReachable startNotifier];
    
    
    - (void) checkNetworkStatus:(NSNotification *)notice
    {
        // called after network status changes
    
        NetworkStatus hostStatus = [hostReachable currentReachabilityStatus];
        switch (hostStatus)
    
    {
        case NotReachable:
        {
            break;
    
        }
        case ReachableViaWiFi:
        {
    
            break;
    
        }
        case ReachableViaWWAN:
        {
    
            break;
        }
    }
    
    }
    

    【讨论】:

    • 我知道如何检查互联网连接。告诉我一些关于同步数据的事情。
    • 多次运行你的网络服务?
    • @Devang 如何同步数据取决于您的服务器和传输的内容。如何做到这一点完全取决于您,如果您询问 10 位开发人员,您可能会得到 10 种不同的解决方案。我建议您考虑一下并提出自己的解决方案,因为这是一个相当广泛的问题。
    • @NickBull :我没有任何基础知识。我只是要求基本知识。
    • @Devang 说真的,如果你不知道从哪里开始,那么我认为你需要开始学习更多的编程基础知识
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多