2012-03-20 4 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; 

EDIT:これを行うには もっと良い方法、私はちょうど実現し、ASIHTTPRequestを使用することです。ライブラリは、上記の方法で達成しようとしていたすべてのニーズを提供します。

答えて

2

ちょうどあなたの全体の2番目のコードブロックを取り、最初のコードブロックの{}内に置きます。あなたはおそらくvoidの代わりにそのjsonData変数を返したいと思うでしょう。

+0

しかし、私の方法はどこに置くべきですか?私はアプリ全体でメソッドを呼び出すことができるように別のクラスでは? – Apollo

+0

それは妥当な音だ。メソッドの呼び出しを望むすべての人が問題のオブジェクトにアクセスできることを確認するだけです。例えば、アプリケーションデリゲートが良い場所になるかもしれません。それはデザインにかなり依存します。また、Objective-Cで普通のCスタイルの関数を書くこともできます。 –

+0

JSONDataを返す方法を具体的にどのように指定しますか? - (NSData)getDatafromServer:(NSString *)URL {... return JSONData} – Apollo

関連する問題