Yahoo!погода в приложении для iphone - PullRequest
1 голос
/ 08 декабря 2011

Я занимаюсь разработкой приложения для iPhone с помощью службы погоды Yahoo (у меня есть ключ). у меня есть 2 вопроса:

  1. могу ли я использовать его в своем приложении для коммерческого использования (например, бесплатно опубликовать свое приложение в appstore)
  2. почему результаты xml и json различаются: http://weather.yahooapis.com/forecastrss?w=29330057&u=c а также http://weather.yahooapis.com/forecastjson?w=29330057&u=c

есть что-то, что нужно сделать многим (у первого есть желаемое местоположение)? спасибо.

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Я подозреваю, что это проблема пространств имен XML. В зависимости от используемой платформы и фактического полного XML, вам придется обращаться к элементам по их пространству имен. Возможно, вы захотите переключиться на другую платформу на основе DOM (без использования NSXMLParser), например, GDataXMLNode от Google. В платформе на основе DOM вы можете получить доступ к отдельным узлам в древовидной структуре, вместо того чтобы создавать их самостоятельно.

В сети есть множество примеров, например, Создание программы чтения RSS или Как читать и писать документы XML с помощью GDataXML . Но для краткого примера, как это может выглядеть:

NSError *error = nil;
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:data options:0 error:&error];

if (doc == nil) { return nil; }

NSMutableDictionary *result = [[NSMutableDictionary alloc] init];

NSArray *lists = [doc nodesForXPath:@"/result/list" error:nil];
if ([lists count] > 0)
{
    for (GDataXMLNode *list in lists) {
        int listid = [self integerInNode:list forXPath:@"listid"];
        NSString *listname = [self stringInNode:list forXPath:@"name"];

        [result setValue:[NSNumber numberWithInt:listid] forKey:listname];   

    }     
}
[doc release];
return [result autorelease]; 
0 голосов
/ 04 октября 2012
  1. Да, Yahoo!позволяют использовать их API в соответствии с политикой добросовестного использования, даже в коммерческих целях.Не будь ослом и дай им достаточно информации, например, их значок или логотип со ссылкой на их сайт.
  2. Не думаю, что важно знать, почему существуют различия в обоих форматах вывода.Используйте то, что лучше / проще для вас.Лично я предпочитаю использовать JSON и класс Apple NSJSONSerialization.
...