我有一个相当标准的rails应用程序,并希望能够从iPhone应用程序访问基本的CRUD(创建,更新,删除)操作以及我添加的查询.Rails或多或少开箱即可为这些操作提供REST API.
在iphone上处理REST/XML部分的最佳方法是什么,有没有任何好的Objective-C库已经做过这种事情了?操作还需要与特定用户相关联(即经过身份验证).
这对我来说是一个常见的问题,所以我一直在研究一个名为ObjectiveResource的Rails ActiveResource框架的端口.
到目前为止,我们已经有两个版本的项目.1.0已经被App Store中的一些应用程序使用,并且可以处理Rails中内置的默认to_xml和to_json资源处理.1.01是一个错误修正版本和升级版本.
我们目前正在为1.1定义功能集.我们已经有了不少想法,并且正在讨论邮件列表上的更多内容.
我有使用plist的运气...
你需要安装plist-3.0.0 gem(gem install plist IIRC)
然后在你的控制器中你设置这样的东西:
plist = {'a' => 'b', 'c' => 'd', 'e' => {'f' => 'g', 'h' => {'i' => 'j'}}}.to_plist render(:text => plist)
然后在你的iPhone应用程序设置如下:
NSURL *url = [NSURL URLWithString:@"http://somewhere.com"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; NSURLResponse *response; NSError *error; NSData *plistData; plistData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; NSPropertyListFormat format; NSString *errorStr; id imagesToRate = [NSPropertyListSerialization propertyListFromData:plistData mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&errorStr]; if(!imagesToRate) { NSLog(errorStr); } else { NSLog(@"%@", [imagesToRate objectForKey:@"e"]); }
你几乎可以自由地使用json(例如,你不必滚动自己的xml方案来格式化数据,序列化就像to_plist调用一样简单)另外,sdk带有本机代码用于处理Plist档案.
但是,如果你们都准备好了一个以json/xml输出的web服务,你可能想要保留它,并使用已经提到的东西解析iphone上的东西(TouchXML,json-framework)