2012-03-20 69 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