gpt4 book ai didi

iPhone + Web 服务最佳实践

转载 作者:行者123 更新时间:2023-12-03 20:35:56 25 4
gpt4 key购买 nike

在 iPhone 应用程序中访问 Web 服务是一个我还没有找到清晰、漂亮的解决方案的问题。我不是在谈论如何发送查询或解析响应,而是在谈论“大局”答案。

不考虑服务器端技术,您如何/将如何将模型对象插入到 Web 服务中?您如何设计代理对象?你如何缓存你的资源?

最佳答案

如果您的 Web 服务恰好是 Ruby on Rails 应用程序,那么 Objective Resource 是一个很棒的工具:http://iphoneonrails.com/ .

如果没有,那么我倾向于使用 ASIHTTPRequest ( http://allseeing-i.com/ASIHTTPRequest/ ),它提供了一个很好的网络层。根据 API,您可以直接使用 ASI 对象,或者如果您想添加每个请求的功能(例如身份验证或响应解析),则可以对现有 ASI 类进行子类化。

您通常希望在后台运行请求,以便在等待请求完成时 UI 不会被阻塞。您始终可以走后台线程路线,但 ASIHTTPRequest 提供的一个很好的“Objective C”风格方法是提供一个委托(delegate),该委托(delegate)在请求完成时调用(另请参阅 http://allseeing-i.com/ASIHTTPRequest/How-to-use 中的“创建异步请求”)。在许多情况下,请求委托(delegate)是发起请求的 View Controller 。

模型层取决于复杂性以及数据的格式。我使用过的大多数 API 都使用 JSON,您可以使用 SBJSON 或 yajl-objc 来解析。这些通常会为您提供解析为基类(如 NSString、NSArray 和 NSDictionary)的数据。有时这就足够了,或者如果您希望模型作为自己的类存在,那么您可以让模型从负责将 NSDictionary/NSArray 转换为属性的基类继承。

最后,对于缓存,Core Data 提供了一种保存到磁盘的好方法。对于内存中的缓存,您可以让请求发生在 Controller 之间共享的单独“管理器”类中。这些管理器使用单例设计模式,如下所述:What should my Objective-C singleton look like? .

关于iPhone + Web 服务最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3194503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com