2009-03-19 6 views
1

en php J'ai:Comment lire dans un tableau php, en Objective-C?

$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; 
    } 
    } 

Dans Objective-C - Après le POST je le code suivant ...

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

returnData est égal au littéral "Array", pas le contenu de $ records []

Répondre

1

Vous devez sérialiser les données dans un format de type XML plist si vous le pouvez, puis il peut être interprété en mode natif par des classes Cocoa comme NSArray et NSDictionary. NSPropertyListSerializer est capable de produire des tableaux et des dictionnaires mutables ou immuables à partir d'un fichier ou d'un objet NSData contenant des données sérialisées au format plist.

NSDictionary peut également lire des fichiers dans ce format:

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

De même, NSArray peut lire des fichiers dans ce format:

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

En fait, je pense que si les chaînes ne contiennent pas d'espaces , les guillemets sont optionnels (mais je suppose qu'ils forceraient les types de chaînes). Pour plus d'informations sur les listes de propriétés ASCII oldschool, consultez this URL. Ils sont en lecture seule, mais là encore, ils sont assez faciles à générer manuellement ou systématiquement.

+0

Toutes les bonnes réponses. Dreamlax, bonne idée. Cela me semble beaucoup plus logique, d'autant plus que je ne connais pas JSON. Merci! – Jordan

0

Du côté PHP, vous devez sérialiser le tableau dans un format comme JSON ou XML plutôt que juste print. Du côté de l'iPhone désérialiser l'objet NSData en utilisant la bibliothèque appropriée

+0

Merci pour vos commentaires. J'utilise PHP version 4.4.9, qui ne supporte pas JSON, j'ai donc utilisé XML à la place. Merci d'avoir répondu. – Jordan

2

Vous devez formater votre tableau dans un format que vous pouvez lire en Objective-C. Je recommande d'utiliser JSON.

Si vous avez PHP 5.2, vous pouvez utiliser the built in functions pour encoder vos données. Par exemple:

echo json_encode($records); 

Du côté Objective-C, vous pouvez utiliser TouchJSON pour décoder/encoder JSON.

+0

+1 pour JSON. C'est tellement facile que c'est criminel. – thomasrutter

+0

Je suis coincé avec PHP version 4.4.9 malheureusement – Jordan

Questions connexes