Вернуть JSON в приложение iOS

0

Я пытаюсь вернуть простой JSON в моем приложении iOS через файл PHP.

PHP:

<?php
header('Content-Type: application/json');
$myarray = array("io" => 1, "tu" => 2);
$out = json_encode($myarray);

echo $out;

?>

IOS:

-(void)provePHP{

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    [request setURL:[NSURL URLWithString:@"http://mysite/myphpfile.php"]];
    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    [request setValue:@"application/json"forHTTPHeaderField:@"Content-Type"];

    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
    [connection start];
}

- (void)connection:(NSURLConnection *)connection
    didReceiveData:(NSData *)data{

    NSError *error;

    NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error: &error];

    NSLog(@"%@ - %@", jsonDict, error);

}


- (void)connectionDidFinishLoading:(NSURLConnection *)connection {

    NSLog(@"FINISH");
}

- (void)connection:(NSURLConnection *)connection
  didFailWithError:(NSError *)error{

    NSLog(@"Error");
}

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

  • 0
    Посмотрите на этот пост / ответ
Теги:

1 ответ

0

connection:didReceiveData: может быть connection:didReceiveData: несколько раз в соединении. У вас должно быть свойство NSMutableData которое вы NSMutableData данные, connection:didReceiveData: в connection:didReceiveData: затем работайте с данными, когда они все есть в connectionDidFinishLoading.

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


РЕДАКТИРОВАТЬ
Если вы не получаете журналы вообще, вы не правильно настроили свой класс как NSURLConnectionDelegate. См. Документы для получения информации о том, что представляет собой шаблон делегата, и как сделать ваш класс делегатом класса framework в Objective-C.

  • 0
    У меня есть несколько журналов, но jsonDict является нулевым. Я пытался использовать appendData, но у меня произошел сбой, потому что данные, полученные в методе делегата, равны нулю ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню