【问题标题】:Best way to load data from a website/server to iPhone将数据从网站/服务器加载到 iPhone 的最佳方式
【发布时间】:2013-08-26 11:01:10
【问题描述】:

我有一个自己的网站,我想编写一个应用程序,从中加载数据(字符串/文本)以填充 iPhone 上的表格视图(如待办事项列表)。我想一直更改我的应用程序(表格视图)的内容,而不在 App Store 中进行更新。当应用程序启动时,它应该从我的网站获取内容...

我应该使用 FTP 来做类似的事情,还是有更好的方法来加载和操作数据?

【问题讨论】:

    标签: ios ftp load


    【解决方案1】:

    如果内容是简单的文本/字符串,则不需要 FTP(这在从 Web 到应用程序的大文件传输的情况下很有用),那么最合适的方法是 RESTful Services

    RESTful Services 能够以非常简单的方式处理GET/POST 数据。因此,您可以轻松地将数据从网站传输到iOS application。每当您更改数据时,它都会自动更改iPhone app 的数据。所以App Store上传申请后就不用改了。

    希望这对您有所帮助!

    【讨论】:

      【解决方案2】:

      最好的方法是使用 JSON 在设备和服务器之间传递数据。 它是轻量级的并且很容易解析。

      要通过网络进行通信,我会向您推荐 AFNetworking 用于发送和接收数据(您也可以使用 NSURLConnection,但 AFNetworking 是在它之上构建的并且非常高效)

      如果您正在寻找超快速的解决方案,那么您也可以选择PubNub

      【讨论】:

        【解决方案3】:

        为了获得最佳的开发者体验,您应该在 REST 服务中使用 JSON 或 XML。

        我建议你使用CoreDataNSFetchedResultController。这是一个非常明确的解决方案。

        但对于 simleproject,您可能有 NSJSONSerialization 类或 NSXMLParser。在我看来,您应该尝试 JSON。在这种情况下,文档是直截了当的。

        假设您有 JSON REST API:

        dispatch_queue_t fetchQueue = dispatch_queue_create("nameOfYourQ", NULL);
        dispatch_async(fetchQueue, ^{
            NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://yourlink"]];
            NSArray *arr = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
            dispatch_async(dispatch_get_main_queue(), ^{
                [yourTableView reloadData];
            });
        });
        

        就是这样。

        【讨论】:

        • 如果您想处理 HTTP 错误,这不是最佳解决方案。使用 NSURLRequestNSURLConnection 可以让您更好地处理任何连接或 HTTP 错误
        • 是的。 NSURLConnection 代表更强大。我建议的这个解决方案主要被我用来在 tableView 中设置拇指。当我使用 JSON 文件时,我使用NSURLConnection。但是对于初学者来说,这应该可以完美地工作。请注意,NSJSONSerialization 在最后一个参数中有指向错误的指针。
        • 此外,在调用任何在线资源之前,您应该始终检查是否有可用的网络连接。这在 Apple 文档中有所说明。
        • 是的,但这应该在刷新 tableView 之前进行检查。这不是这个问题或答案的一部分。与解析或获取数据机制无关。
        【解决方案4】:

        一个简单的解决方案是通过 HTTP 使用 JSON。要制定更稳定的解决方案,您可以使用完整的RESTful web service。使用 HTTP 状态代码通知您的客户端应用程序发生了什么。

        使用AFNetworking 将使调用Web 服务和解析JSON 响应变得非常容易。

        【讨论】:

        • 奖励:gzip/bzip JSON 数据以最小化带宽。
        • 使用第三方框架不应该是第一个建议。
        • @rckoenes 因为这是一个非常简单的问题。我在下面发表我的建议 - 使用这个非常强大的框架来完成这个简单的操作。
        • “使用 AFNetworking 可以非常轻松地调用 Web 服务并解析 JSON 响应。”这在NSJSONSerialization 中并不是很复杂。就一行代码……
        猜你喜欢
        • 2011-02-23
        • 1970-01-01
        • 1970-01-01
        • 2020-12-12
        • 2018-10-03
        • 2016-07-10
        • 2012-04-23
        • 1970-01-01
        • 2016-03-23
        相关资源
        最近更新 更多