簡體   English   中英

在iOS應用程序中返回JSON

[英]Return JSON in iOS application

我正在嘗試通過PHP文件在我的iOS應用中返回一個簡單的JSON。

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");
}

我不明白我做錯了什么。 我遵循在此站點上找到的許多代碼,但日志中沒有結果。

connection:didReceiveData:可以在一個連接中被多次調用。 您應該擁有一個NSMutableData屬性,該屬性可以將數據追加附加到connection:didReceiveData: ,然后在connectionDidFinishLoading所有存在的數據之后再使用。

我建議您調整代碼以遵循這些准則,並查看是否仍然存在問題。


編輯
如果根本沒有獲取日志,則沒有正確將類設置為NSURLConnectionDelegate 請參閱文檔,以獲取有關什么是委托模式以及如何使您的類成為Objective-C中框架類的委托的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM