【问题标题】:Client Server iPhone App客户端 服务器 iPhone 应用程序
【发布时间】:2009-07-14 07:13:27
【问题描述】:

我需要构建一个客户端服务器 iphone 应用程序。想在服务器上存储数据库并将其保存在客户端的 iphone 上。我必须使用什么策略以及什么 dbms 和工具?因为我的数据库已经够重了

【问题讨论】:

  • 还告诉服务器和客户端如何通信?

标签: iphone


【解决方案1】:

这很简单。如果您控制系统的两个部分。

这里的神奇词是 PLIST 的。

IBM 有一个很好的例子,其中包含一个 iPhone 源项目和一个有效的谷歌应用引擎部署。 http://www.ibm.com/developerworks/web/library/wa-aj-iphone/

这是一些超基本的代码。

// SaveOnline.

NSMutableArray *myArray = [NSMutableArray arrayWithObjects:@"one",@"two",nil];
NSURL *url = [NSURL URLWithString:@"http://www.hurl.ws/api/"];
ok = [myArray writeToURL:url atomically:NO];
if(ok) NSLog(@"saved worked");

您还可以从 URL 加载此 PLIST 并将其加载回您的对象中也很容易。整个 PLIST 系统非常酷。它有点冗长,但我不会担心,因为它非常灵活,从长远来看,它可以为您节省数小时的调试时间。

我还注意到服务器上有很多库可以将 PLIST 转换为 PHP、Python 的本地对象,并假设您可以找到 Java 或 .Net 的库。

不要想着自己用 XML 来做这件事,它会很快变得一团糟,而且当你不需要时,你会浪费很多时间来修复它。

PLIST 是你的朋友,所以请使用它们。约翰。

【讨论】:

    【解决方案2】:

    要保存到服务器,您可以尝试 Parse:http://www.parse.com,他们似乎有一个简单的系统来存储数据(无需您设置任何服务器)。

    最重要的是,您可以将数据作为 plist 文件在本地保存。以下是不同类型存储选项的一个很好的概要:http://doganberktas.com/2010/10/16/data-storage-alternatives-on-ios-in-a-nutshell/

    如果您想要简单,您应该只在 plist 中存储数据,最好使用 NSCoding 协议,这将允许您轻松存储任意对象。

    【讨论】:

      【解决方案3】:

      如果您的数据库对象很复杂,您可能希望使用核心数据并在 iphone 中以您自己的方式对对象进行建模。当然,当您从服务数据库转到存储在核心数据中时,您必须对它们进行某种翻译,但这应该不会太难。如果您从您的服务获得 XML 或 Json 响应,您应该能够轻松地解析它们并在 iphone 上构建您的对象,并且只需使用核心数据来存储它们。

      【讨论】:

        【解决方案4】:

        您在服务器端使用的数据库无关紧要,它只是 iPhone 应用程序的黑匣子。该应用程序可以使用 XML 或 PLIST 或 JSON 通过 HTTP 与此服务器通信,正如 John 和 Daniel 推荐的那样。

        就最简单的方法而言,只需使用您已经知道的服务器端语言即可。我想,在类似于 Google 应用引擎的东西上运行它可能是最简单的。

        【讨论】:

          【解决方案5】:

          bpapa,您注意到“应用程序可以使用 XML 通过 HTTP 与此服务器通信”,我假设您的意思是 Web 服务?

          我之所以这么问,是因为我试图揭开从 iPhone 向数据存储(例如由 Google App Engine 提供的数据存储)获取数据并返回的神秘面纱。

          谢谢 // :)

          P.S.)更重要的是,谷歌有一个很好的解决方案,可以在没有大量资本投资的情况下创建可扩展的数据存储。我一直在关注它、Amazon Web Services 和 Windows Azure。看来,除非你对.net有很强的依赖或者有很强的能力,否则谷歌的解决方案是有道理的。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-05-26
            • 1970-01-01
            相关资源
            最近更新 更多