【问题标题】:Can I download and parse a large file with RestKit?我可以用 RestKit 下载和解析一个大文件吗?
【发布时间】:2014-04-03 16:48:44
【问题描述】:

我必须从 Web 服务下载数千或数百万个热点帖子,并将它们存储在本地核心数据中。 json 响应或文件大约 20 或 30 MB,因此下载需要一些时间。我想映射并将其存储在核心数据中也需要时间。 我可以在restkit中做吗?还是只是为了合理的尺寸响应而设计的? 我知道我可以在下载大文件时跟踪进度,甚至我可以知道映射何时开始或结束:http://restkit.org/api/latest/Protocols/RKMapperOperationDelegate.html 大概我也可以把核心数据操作封装起来,避免阻塞UI。 你怎么看?你认为这可行吗?还是我应该选择更手动的方法?我想知道你的意见。提前致谢。

【问题讨论】:

    标签: ios rest restkit grand-central-dispatch nsoperationqueue


    【解决方案1】:

    您的问题不是封装或线程,而是内存使用。

    首先,成千上万的“热门帖子”可能会导致您在移动设备上出现问题。您通常应该使用允许您获取一组过滤的内容的 Web 服务。如果您还没有,请考虑创建它(可能通过将数据上传到 Parse.com 等服务)。

    RestKit 不是为使用流式解析器而设计的,因此需要将完整的 JSON 反序列化到内存中才能进行处理。您可以尝试一下,但我怀疑如果 JSON 为 20 / 30 MB,移动设备会不满意。

    因此,创建一个不错的 Web 服务或使用流解析器并自己处理结果(这在技术上可以使用 RestKit 映射操作来完成)。

    【讨论】:

    • 感谢您的回复。这正是我的想法,但我的客户(创建 Web 服务器)正是他想要的。所以,基本上,我想知道我是否能做到。例如,如何组合请求操作?我的意思是,根据第一个请求响应,创建一个按照逻辑发送 2 个或 3 个请求的操作。嗯......我想我会在stackoverflow中打开一个新问题。顺便说一句,请求和映射 2 个不同的 nsoperation 是串行的吗?感谢您的建议。
    • 映射操作将被添加到队列中,因此您可以设置并发运行的数量(如果操作运行速度不够快,则阻止解析)...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    相关资源
    最近更新 更多