我需要构建一个客户端服务器iphone应用程序。想要在服务器上存储数据库并将其保存在客户端的iphone上。我必须使用什么策略和什么dbms'和工具?我的数据库可以足够重
答案 0 :(得分:2)
这很容易。如果您控制系统的两个部分。
这里的神奇词是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是你的朋友所以使用它们。约翰。
答案 1 :(得分:2)
为了保存到服务器,您可以尝试Parse:http://www.parse.com,它们似乎有一个简单的系统来存储数据(无需设置任何服务器)。
最重要的是,您可以将数据作为plist文件保存在本地。以下是不同类型存储选项的完美概述:http://doganberktas.com/2010/10/16/data-storage-alternatives-on-ios-in-a-nutshell/
如果您想要简单,那么您应该将数据存储在plist中,最好使用NSCoding协议,这样您就可以轻松存储任意对象。
答案 2 :(得分:0)
如果您的数据库对象很复杂,您可能希望使用核心数据并在iphone中以您自己的方式对对象进行建模。当然,当您从服务数据库转到存储核心数据时,您将不得不翻译它们,但这不应该太困难。如果从服务中获得XML或Json响应,您应该能够轻松地解析它们并在iphone上构建对象,只需使用核心数据来存储它们。
答案 3 :(得分:0)
您在服务器端使用的数据库并不重要,它只是iPhone应用程序的黑盒子。应用程序可以使用XML通过HTTP与此服务器通信,或者如John和Daniel推荐的那样通过PLIST或JSON进行通信。
就最简单的方法而言,只需使用您已经知道的服务器端语言即可。
,这可能最容易在类似于谷歌应用引擎的东西上运行。答案 4 :(得分:0)
bpapa你注意到“应用程序可以通过HTTP使用XML与此服务器通信”,我假设您的意思是Web服务?
我问,因为我试图揭开从iPhone获取数据到Google App Engine提供的数据存储的神秘面纱,然后回来。
谢谢//:)
P.S。)更多关于这个主题,谷歌有一个很好的解决方案,可以在没有大量资金投入的情况下创建可扩展的数据存储。我一直在关注它,亚马逊网络服务和Windows Azure。似乎除非你在.net中严重依赖或强大的能力,否则谷歌的解决方案是有道理的。