对于iOS objective-c网站连接,我是一个完整的菜鸟。我需要有人指出我如何上传/推送数据(即帖子)到我的朋友在Ruby on Rails中编程的网站上的正确方向。
该网站正在使用Heroku的服务并连接到PostgreSQL数据库。
我想出了一种通过以下代码使用JSON Parser(SBJson)从网站提取数据的方法:
SBJsonParser *parser = [[SBJsonParser alloc] init];
NSString *rawJSON = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:aURL]];
anNSDictionaryObject = [[parser objectWithString:rawJSON error:nil] copy];
我搜遍了所有地方但由于某种原因我无法掌握如何上传数据。我是否需要直接访问数据库?我是否需要以与我提取的格式相同的格式上传数据?
我不确定我是否提供了足够的信息,但我们将不胜感激。如果需要更多信息,请告诉我。
答案 0 :(得分:0)
你的朋友应该从rails应用程序中公开一个REST Api(如果你正在关注MVC,甚至是rails scaffolding,那么这些应该是实际构建的。)
在iOS应用程序中,您可能希望发送异步请求,因此主UI线程不会阻止。您将要使用post数据创建NSMutableURLRequest,然后使用NSURLConnection sendSynchronousRequest发送数据
答案 1 :(得分:0)
您必须首先确保Web服务通过API公开创建或更新对象(您永远不需要直接访问数据库)。通常在REST(和Rails)中,惯例是使用POST进行创建,使用PUT进行更新。例如:
POST /user.json
{ user: { name: "...", email: "..." } }
或者:
PUT /users/:id.json
{ user: { name: "...", email: "..." } }
在服务器上进行此设置后,使用JSON库序列化对象和HTTP库以在iOS客户端上执行发布。我建议使用JSONKit和HTTPRiot,因为它们提供了与RESTful服务器交互的简单方法。
答案 2 :(得分:0)
查看StorageRoomApp,他们拥有出色的服务和强大的支持。 Storage Room App