2009-03-19 12 views
1

:Objective-CではObjective-CでPHP配列を読み込むにはどうすればよいですか?私は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; 
    } 
    } 

を - POST後、私は、次のコードを持っている...

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

returnDataリテラル "アレイ"、ではないコンテンツに等しいです。 of $ records []

答えて

1

できるだけデータをXML形式plistにシリアル化する必要があります。それは、NSArrayやNSDictionaryなどのCocoaクラスによってネイティブに解釈できます。 NSPropertyListSerializerは、ファイルまたはplist形式のシリアル化されたデータを含むNSDataオブジェクトから、可変または不変の配列と辞書を生成することができます。

NSDictionaryのもこの形式のファイルを読むことができます:

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

同様に、NSArrayのは、この形式のファイルを読むことができます:実際に

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

を文字列にスペースが含まれていない場合、私は思います、引用符はオプションです(しかし、私は彼らが文字列型を強制すると思います)。

oldschoolのASCIIプロパティリストの詳細については、this URLを参照してください。これらは読み取り専用ですが、再度手動またはシステムで生成するのは簡単です。

+0

すべての良い応答。 Dreamlax、良いアイデア。これは私にとって今より多くの意味を持ちます。特にJSONに慣れていないからです。ありがとう! – Jordan

0

PHP側では、printではなく、JSONまたはXMLのような形式に配列をシリアル化する必要があります。 iPhone側ではNSDataオブジェクトを適切なライブラリを使用して逆シリアル化します

+0

フィードバックありがとうございます。私はJSONをサポートしていないPHPバージョン4.4.9を使用しているので、代わりにXMLを使用しました。答えをありがとう。 – Jordan

2

Objective-Cで読むことができる形式で配列をフォーマットする必要があります。 JSONを使用することをおすすめします。

PHP 5.2をお持ちの場合は、the built in functionsを使用してデータをエンコードできます。たとえば:Objective-Cの側では

echo json_encode($records); 

、あなたは/エンコードJSONをデコードするTouchJSONを使用することができます。

+0

+1 for JSON。それは犯罪者にとってとても簡単です。 – thomasrutter

+0

残念ながら、私はPHPのバージョン4.4.9で固まっています – Jordan

関連する問題