¿Cómo leo en una matriz php, en Objective-C?
-
20-08-2019 - |
Pregunta
En php tengo:
$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;
}
}
En Objective-C - Después de la POST tengo el siguiente código ...
NSURLResponse *newStr = [[NSURLResponse alloc] init];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&newStr error:nil];
returnData es igual al literal " Array " ;, no el contenido de $ records []
Solución
Si puede, puede serializar los datos en un formato de tipo XML plist
, luego puede ser interpretado de forma nativa por clases de Cocoa como NSArray y NSDictionary. NSPropertyListSerializer es capaz de producir matrices y diccionarios mutables o inmutables a partir de un archivo o de un objeto NSData que contiene datos serializados en formato plist.
NSDictionary también puede leer archivos en este formato:
"key" = "value";
"key2" = "value2";
Del mismo modo, NSArray puede leer archivos en este formato:
(
"value1",
"value2",
"value3",
"30",
"value5"
);
De hecho, creo que si las cadenas no contienen espacios, las comillas son opcionales (pero supongo que forzarían los tipos de cadenas).
Consulte esta URL para obtener más información sobre las listas de propiedades ASCII de la vieja escuela. Son de solo lectura, pero de nuevo son lo suficientemente fáciles de generar de forma manual o sistemática.
Otros consejos
Necesita formatear su matriz en algún formato que pueda leer en Objective-C. Recomiendo usar JSON .
Si tiene PHP 5.2, puede usar las funciones integradas para codificar sus datos. Por ejemplo:
echo json_encode($records);
En el lado de Objective-C, puede usar TouchJSON para decodificar / codificar JSON.
En el lado de PHP, debe serializar la matriz a un formato como JSON o XML en lugar de simplemente print
ing. En el lado del iPhone, deserializaría el objeto NSData
usando la biblioteca apropiada