2012-03-20 78 views
0

目前我能够通过使用HTTP GET和NSURL连接从MySQL数据库检索数据,但我需要知道如何将此操作封装到方法中。有人可以告诉我如何将下面的代码放入方法中,以便我可以在整个应用程序中调用它,并且还可以在进程正在进行时显示UIActivityIndi​​cator?objective-c:创建服务器方法

//somethign like this? 
-(void)getDataFromServer:(NSString *)url{ 
//enter code here 

} 

我目前的服务器请求:我使用这didselectrowforindexpath,让下面的东西是做每当有人选择小区。问题是我一直在用几种不同的方法重复使用相同的代码,所以我认为不断的复制/粘贴这些代码是一种不好的做法,而不是一种方法。

// retrieve data 
NSString *buildURL = [[NSString alloc] initWithFormat:@"http://myurl.com"]; 

// begin query 
NSURL *url = [NSURL URLWithString:buildURL]; 
NSError *e; 
NSString *jsonreturn = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&e]; 

NSLog(@"jsonreturn: %@",jsonreturn); 

NSData *jsonData = [jsonreturn dataUsingEncoding:NSUTF32BigEndianStringEncoding]; 
NSError *error = nil; 

编辑: 更好的方法来做到这一点,这是我刚刚实施,是使用ASIHTTPRequest。图书馆提供了我试图用上述方法完成的所有需求。

回答

2

把你的整个第二代码块,并把它放在第一个代码块的{}。不过,您可能想要返回jsonData变量而不是void

+0

但我应该在哪里放置我的方法?在一个单独的类中,以便我可以在整个应用程序中调用该方法? – Apollo 2012-03-20 17:30:10

+0

这听起来很合理。您只需确保所有想要调用该方法的人都可以访问所讨论的对象。例如,您的应用程序委托可能是一个好地方。这将是非常依赖设计的。如果你愿意,你也可以在Objective-C中编写常规的C风格函数。 – 2012-03-20 17:31:19

+0

也我该如何specificy,我想返回JSONData? - (NSData)getDatafromServer:(NSString *)URL {... return JSONData} – Apollo 2012-03-20 17:31:27