2011-11-05 67 views
0

我得到使用异步NSURL连接我的JSON对象为 {"firstname":"A","Contact":{"phone":1234567899,"email":"[email protected]"}}如何在Xcode 4中发布json对象?

我想知道,如果我改变了我的电话号码的值,然后要上传回来,我怎么能做到这一点。我们是否只发送电话或整个对象的键值对 {“firstname”:“A”,“Contact”:{“phone”:1234567899,“email”:“[email protected]”}}更新电话号码到服务器以便在数据库中更新。

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setURL:myUrl]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:@"text/plain" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPBody:stringInNSData]; 

我发现上面的逻辑几乎无处不在,但不知道如何实现以及在哪里实现。

回答

2

这真的取决于您的服务器以及数据库的存储方式。如果您使用的是类似SQL的数据库,则需要传递主键,以标识要更新的数据行以及更新的字段。接收帖子的服务器代码可以更新您传入的属性,并保留数据行的其余部分。

为了实现这个目标,您应该在数据发生变化时实施它。如果有触发数据更改的UI元素,则可以在其中实现。只需在代码下面添加以下代码

NSURLConnection *urlConnection = [NSURLConnection connectionWithRequest:request delegate:self]; 

这将设置代码实现的类作为连接的委托并启动连接。您可以使用这些方法来处理更新的成功或失败。

Connection Data and Responses 
– connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite: delegate method Available in iOS 3.0 through iOS 4.3 
– connection:didReceiveData: delegate method Available in iOS 2.0 through iOS 4.3 
– connection:didReceiveResponse: delegate method Available in iOS 2.0 through iOS 4.3 
– connection:willCacheResponse: delegate method Available in iOS 2.0 through iOS 4.3 
– connection:willSendRequest:redirectResponse: delegate method Available in iOS 2.0 through iOS 4.3 
Connection Completion 
– connection:didFailWithError: delegate method Available in iOS 2.0 through iOS 4.3 
– connectionDidFinishLoading: delegate method Available in iOS 2.0 through iOS 4.3 
+0

谢谢maudi :-) – codejunkie

+0

没问题。看起来你的项目正在向前移动! –

+0

是的,它是:-)我正在制作一个应用程序就像在线产品评级。现在我再次坚持下去。我正在访问所有用户发布的评论。我把它们放在tableview中,但是有一个问题,如文本的大小是否更大,tableview单元格只显示1行。我正在寻找如何调整tableview的高度。 – codejunkie