从iOS Objective-C上传数据到网站

时间:2011-10-16 02:31:34

标签: objective-c ruby-on-rails ios database web

对于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];  

我搜遍了所有地方但由于某种原因我无法掌握如何上传数据。我是否需要直接访问数据库?我是否需要以与我提取的格式相同的格式上传数据?

我不确定我是否提供了足够的信息,但我们将不胜感激。如果需要更多信息,请告诉我。

3 个答案:

答案 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客户端上执行发布。我建议使用JSONKitHTTPRiot,因为它们提供了与RESTful服务器交互的简单方法。

答案 2 :(得分:0)

查看StorageRoomApp,他们拥有出色的服务和强大的支持。 Storage Room App