0

私のphpにはloadというメソッドがあります。別のメソッドに挿入することはできますが、パラメーターを変更してこのメ​​ソッドに話しかけると、データは正しく送信されると思いますが、アプリに表示されません。

index.php

function load(){
          //Establish connection
   $con=mysqli_connect("localhost","root","","Mealidea");

    // Check connection
    if (mysqli_connect_errno()){
        $errorR['name']="Failed to connect to mysql".mysqli_connect_error();
        echo json_encode(errorR);
    }

    //Perform query
    $result = mysqli_query($con,"SELECT * FROM User");
    $myjsons = array();

    while($row = mysql_fetch_assoc($result)){ 
        $myjsons[] = $row;
    }

    //Close connection
    mysqli_close($con);    

    echo json_encode($myjsons);
}

リクエストを設定:

//Get from DB
    NSURL*url=[NSURL URLWithString:@"http://localhost/Tutorials/index.php?f=load&key=6dM7V0n5GqYJLTMibQDf2gA2a94h8hbF"];

    //URL request
    NSURLRequest*request=[NSURLRequest requestWithURL:url];


    //Set the connection
    connection = [NSURLConnection connectionWithRequest:request delegate:self];

    if (connection) {
        webData=[[NSMutableData alloc]init];
    }

答えを得る:

NSDictionary*data=[NSJSONSerialization JSONObjectWithData:webData options:0 error:&error];

    //If data is nil, then print error
    if (data==nil) {
        //NSLog(@"%@",error);
    }

    //Print the data
    NSLog(@"%@",data);

    //???? how to parse data?
    NSDictionary*num=[data valueForKey:@"User"];
4

1 に答える 1

1

PHP スクリプトは配列 (JSON でエンコードされた) を送信しているように見えますが、Objective-C コードはNSDictionary次の行によると、 を期待しているようです:

NSDictionary*data=[NSJSONSerialization JSONObjectWithData:webData options:0 error:&error];

それはおそらくそうあるべきです

NSArray *users = [NSJSONSerialization JSONObjectWithData:webData options:0 error:&error];

そして、NSArrayのユーザーを繰り返し処理し、それらをまたはUITableView同様のもので提示できるはずです。

于 2013-03-30T01:18:41.083 に答える