1

在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 中 - 在 POST 之后我有以下代码......

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

returnData 等于文字“数组”,而不是 $records[] 的内容

4

3 回答 3

2

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

如果您有 PHP 5.2,则可以使用内置函数对数据进行编码。例如:

echo json_encode($records);

在 Objective-C 方面,您可以使用TouchJSON对 JSON 进行解码/编码。

于 2009-03-19T04:27:06.233 回答
1

如果可以,您应该将数据序列化为 XML 类型plist格式,然后它可以被 NSArray 和 NSDictionary 等 Cocoa 类本地解释。NSPropertyListSerializer 能够从文件或包含 plist 格式的序列化数据的 NSData 对象生成可变或不可变数组和字典。

NSDictionary 也可以读取这种格式的文件:

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

同样,NSArray 可以读取这种格式的文件:

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

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

查看此 URL以获取有关 oldschool ASCII 属性列表的更多信息。它们是只读的,但是它们很容易手动或系统地生成。

于 2009-03-19T04:44:50.607 回答
0

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

于 2009-03-19T04:26:46.157 回答