Come leggo in un array php, in Objective-C?
-
20-08-2019 - |
Domanda
In php ho:
$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;
}
}
In Objective-C - Dopo il POST ho il seguente codice ...
NSURLResponse *newStr = [[NSURLResponse alloc] init];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&newStr error:nil];
returnData è uguale al " Array " ;, non al contenuto di $ records []
Soluzione
Se possibile, serializzare i dati in un formato XML plist
se possibile, quindi possono essere interpretati nativamente da classi Cocoa come NSArray e NSDictionary. NSPropertyListSerializer è in grado di produrre array e dizionari mutabili o immutabili da un file o da un oggetto NSData contenente dati serializzati in formato plist.
NSDictionary può anche leggere file in questo formato:
"key" = "value";
"key2" = "value2";
Allo stesso modo, NSArray può leggere i file in questo formato:
(
"value1",
"value2",
"value3",
"30",
"value5"
);
In effetti, penso che se le stringhe non contengono spazi, le virgolette sono facoltative (ma suppongo che forzerebbero i tipi di stringa).
Controlla questo URL per ulteriori informazioni sugli elenchi di proprietà ASCII oldschool. Sono di sola lettura, ma sono ancora abbastanza facili da generare manualmente o sistematicamente.
Altri suggerimenti
Devi formattare l'array in un formato che puoi leggere in Objective-C. Consiglio di utilizzare JSON .
Se hai PHP 5.2, puoi utilizzare le funzioni integrate per codificare i tuoi dati. Ad esempio:
echo json_encode($records);
Sul lato Objective-C, puoi usare TouchJSON per decodificare / codifica JSON.
Sul lato PHP è necessario serializzare l'array in un formato come JSON o XML anziché semplicemente print
eseguirlo. Sul lato iPhone quindi deserializzare l'oggetto NSData
usando la libreria appropriata