代码之家  ›  专栏  ›  技术社区  ›  Jordan

我如何在Objective-C中读取PHP数组?

  •  1
  • Jordan  · 技术社区  · 15 年前

    在PHP中,我有:

    $result = mysql_query($query);
    // if successful query, return the records
    if ($result)
    {
        // if not empty result, return array of records
        if (mysql_num_rows($result))
        {
            $records = array();
            while ($row = mysql_fetch_assoc($result))
            {
                $records[] = $row;
            }
            return $records;
        }
         }
    

    在Objective-C中-在发布之后,我有以下代码…

    NSURLResponse *newStr = [[NSURLResponse alloc] init];
    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&newStr error:nil];
    

    返回数据等于文本“array”,而不是$records[]

    3 回复  |  直到 15 年前
        1
  •  1
  •   dreamlax    15 年前

    您应该将数据序列化为XML类型 plist 如果可以的话,可以使用nsarray和nsdictionary等coco类对其进行本机解释。nspropertylistserializer能够从文件或包含plist格式序列化数据的nsdata对象生成可变或不可变数组和字典。

    nsdictionary还可以读取以下格式的文件:

    "key" = "value";
    "key2" = "value2";
    

    同样,nsarray可以读取以下格式的文件:

    (
         "value1",
         "value2",
         "value3",
         "30",
         "value5"
    );
    

    实际上,我认为如果字符串不包含空格,引号是可选的(但我猜它们会强制使用字符串类型)。

    退房 this URL 有关Oldschool ASCII属性列表的详细信息。它们是只读的,但同样,它们也很容易手动或系统地生成。

        2
  •  2
  •   Ecton    15 年前

    您需要将数组格式化为可以在Objective-C中读取的某种格式。我建议使用 JSON .

    如果您有php 5.2,可以使用 the built in functions 对数据进行编码。例如:

    echo json_encode($records);
    

    在目标C方面,您可以使用 TouchJSON 解码/编码JSON。

        3
  •  0
  •   rpetrich    15 年前

    在PHP方面,您需要将数组序列化为JSON或XML之类的格式,而不仅仅是 print 它。然后在iPhone端反序列化 NSData 使用适当库的对象