【问题标题】:Can Cocoa Touch UI objects be serialized, transmitted over a network, and reconstituted on a client?Cocoa Touch UI 对象可以序列化、通过网络传输并在客户端上重构吗?
【发布时间】:2009-09-10 16:53:14
【问题描述】:

我一直在与一个开发 iPhone 应用程序的团队一起工作。像许多其他刚接触 Cocoa Touch 的开发人员一样,我们决定创建一个混合的 Cocoa-Web 应用程序,它本质上是几个按钮控制一些 UIWebView——部分是为了 (a) 利用现有的 Web 开发专业知识,部分是因为 (b)推出更改方面的优势(更改服务器上的内容,无需推出应用程序的新版本),部分原因是(c)应用程序本质上专注于从网络中提取数据。

但是,我们已经达到了这样一个点,即这种混合方法看起来在抛光和性能方面具有显着的成本。我们正在解决这个问题,但我想我们都开始怀疑更纯粹的 Cocoa 客户端是否不是更好的举措。

最大的问题是——在 Cocoa 下是否有我们可以保持优势的安排 (b)?是否有某种方法可以序列化 Cocoa Touch UI 对象,以便它们可以通过网络传输并重组以在客户端上显示?如果是这样,当序列化时,它们是否足够轻巧以使其实用?

【问题讨论】:

    标签: iphone objective-c cocoa cocoa-touch serialization


    【解决方案1】:

    有趣的想法。你可以序列化任何实现 NSCoding 协议的东西——这就是它的用途——所以几乎任何你可以放入 XIB 的东西都应该允许你存档它。您甚至可以利用UIViewControllerinitWithNibName:bundle:;你的应用程序可以下载并展开一个包含 nib 的包到它的文档目录中,然后使用UIViewController 方法和NSBundle +bundleWithPath: 加载它。我认为您甚至可以接受 SDK 的条款——它们禁止加载“插件”代码,但 XIB 不包含任何可执行文件。

    如需了解更多信息,请查看Archives and Serializations Programming Guide

    【讨论】:

      【解决方案2】:

      .xib 文件是 Objective-C 对象的序列化表示。您可以采用与 IB 相同的方式归档和取消归档对象。请参阅 NSKeyedArchiver 和相关主题的文档。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-21
        • 2015-04-22
        • 2011-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多