Простой вопрос от начинающего программиста iPhone - PullRequest
1 голос
/ 08 июля 2011

Я прошу прощения за то, что, как я понимаю, это, вероятно, очень простой вопрос - я очень плохо знаком с программированием, и с тем, что, вероятно, очень просто для большинства из вас, я уже давно борюсь с этим.

По сути, я работал над простым погодным приложением, которое получает информацию из API погоды Google. 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];

Как видите, изменяя значение «запрос», я контролирую, для какого города или города выбирается погода. Остальная часть приложения работает относительно хорошо - данные о погоде отображаются и по большей части надежны. Тем не менее, он отображает только погоду для любого города, который я кодирую в приложении, что делает его бесполезным для всех, кроме жителей моего города.

Мой вопрос заключается в том, что было бы самым простым способом: сначала попросить пользователя ввести свое местоположение, затем взять это местоположение и установить его равным строке запроса.

Как я уже сказал, это, вероятно, очень простой вопрос, однако, будучи новичком в программировании в целом, я боролся с ним довольно долго. Я был бы очень рад отдать несколько долларов через PayPal на ответ, который полностью отвечает на мой вопрос.

Если вам нужна дополнительная информация, чтобы лучше ответить на вопрос, пожалуйста, не стесняйтесь спрашивать, я рад предоставить ее.

Еще раз спасибо!

Ответы [ 2 ]

2 голосов
/ 08 июля 2011

Я бы предложил использовать Location Services, чтобы вашему пользователю вообще не нужно было указывать свое местоположение.Посмотрите здесь: Общее представление об услугах определения местоположения .

В этой статье SO вы найдете одноэлементный класс, в котором должно быть указано ваше текущее местоположение.Чтобы использовать этот класс, я хотел бы сделать так в вашем главном контроллере (или когда вы хотите обновить свое местоположение):

 ...
 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, показывающий, как получить ваш текущий адрес (страну,город или улицу) из вашего местоположения.

Я думаю, в основном все, что вам нужно.

0 голосов
/ 08 июля 2011

Самый простой способ - запросить у пользователя 6-значный почтовый индекс в UITextField и использовать этот текст в своем запросе.Просто убедитесь, что это 6 цифр и только цифры заранее.

Если вы сталкиваетесь с чем-то подобным, я настоятельно рекомендую вам посмотреть курс Stanford iOS, доступный на iTunes U. Первые несколько курсов покажут вам большую частьчто вы могли бы развить.

...