1

非常に単純な質問である可能性が高いことをお詫びします。プログラミングは非常に初めてであり、大多数の皆さんにとって非常に単純である可能性が高いことは、かなり長い間苦労してきました。

基本的に、私はGoogleWeatherAPIから情報を取得する単純な天気アプリに取り組んできました。APIは、URLの末尾に町名または郵便番号を追加するだけで済むように設定されています。

query = @"toronto,on";

CXMLDocument *parser = [[[CXMLDocument alloc] initWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.google.com/ig/api?weather=%@", query]] options:0 error:nil] autorelease];

ご覧のとおり、値「query」を変更することで、天気が取得される町または都市を制御します。アプリの残りの部分は比較的うまく機能します-天気データが表示され、ほとんどの部分で信頼できます。ただし、アプリにコード化した都市の天気のみが表示されるため、都市の居住者以外の人には役に立たなくなります。

私の質問は、最初にユーザーに場所を入力するように促し、次にその場所を取得して「クエリ」文字列と等しくする最も簡単な方法は何でしょうか。

私が言ったように、これはおそらく非常に単純な質問ですが、一般的にプログラミングに慣れていないので、私はかなり長い間それと格闘してきました。私の質問に完全に答える回答にPayPal経由で数ドルを与えることは完全に幸せです。

質問にもっとよく答えるためにさらに情報が必要な場合は、遠慮なく質問してください。喜んで提供します。

再度、感謝します!

4

2 に答える 2

2

位置情報サービスを使用することをお勧めします。これにより、ユーザーは自分の場所をまったく入力する必要がなくなります。こちらをご覧ください:位置情報サービスについて.

このSO articleには、現在の場所を提供するシングルトン クラスがあります。このクラスを使用するには、メイン コントローラーで (または場所を更新する場合)、次のようにします。

 ...
 CLLocation *myLocation = [[LocationManager sharedInstance] currentLocation];
 if ([[LocationManager sharedInstance] locationKnown]) {
      [self updateWeatherInfo];
 } else {
      [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(checkLocation:) userInfo:nil repeats:YES];
 }
 ...

の実装を提供するcheckLocation:

- (void)checkLocation:(NSTimer*)theTimer {
     if ([[LocationManager sharedInstance] locationKnown) {
          [theTimer invalidate];
          [self updateWeatherInfo];
     }
}

updateWeatherInfoサーバーから新しい天気予報を取得するために提供されたメソッドはどこにありますか。そのメソッドでは、以下のサンプルのコードを使用して currentLocation を都市名に変換します。

これは、現在地から現在の住所 (国、都市、または通り) を取得する方法を示す Appleの完全なサンプルです。

必要なものはほとんど揃っていると思います。

于 2011-07-07T21:01:21.297 に答える
0

最も簡単な方法は、ユーザーに UITextField で 6 桁の郵便番号を要求し、そのテキストをクエリで使用することです。事前に6桁で数字のみであることを確認してください.

このようなことに苦労している場合は、iTunes U で利用できるスタンフォード iOS コースを視聴することを強くお勧めします。最初のいくつかのコースでは、開発したいものの多くが示されます。

于 2011-07-07T21:03:47.453 に答える