2009-03-19 5 views
1

내가 가진 : 오브젝티브 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 형식으로 serialize해야합니다. 그러면 NSArray 및 NSDictionary와 같은 Cocoa 클래스에서 네이티브 방식으로 해석 할 수 있습니다. NSPropertyListSerializer는 파일 또는 serialize 된 데이터를 plist 형식으로 포함하는 NSData 객체에서 변경 가능하거나 변경 불가능한 배열 및 사전을 생성 할 수 있습니다.

있는 NSDictionary는이 형식의 파일을 읽을 수 있습니다

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

문자열이 공백을 포함하지 않는 경우, 내 생각 :

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

마찬가지로, NSArray를이 형식의 파일을 읽을 수 있습니다 , 따옴표는 선택 사항입니다 (그러나 나는 그들이 문자열 유형을 강제 할 것입니다).

고등학교 ASCII 속성 목록에 대한 자세한 내용은 this URL을 확인하십시오. 읽기 전용이지만 다시 수동 또는 체계적으로 생성하기에 쉽습니다.

+0

좋은 반응. Dreamlax, 좋은 아이디어. 이제는 JSON에 익숙하지 않아서 나에게 훨씬 더 의미가 있습니다. 감사! – Jordan

0

PHP 측에서는 배열을 print이 아닌 JSON 또는 XML 형식으로 직렬화해야합니다. iPhone 측에서 적절한 라이브러리를 사용하여 NSData 객체를 deserialize합니다.

+0

의견에 감사드립니다. JSON을 지원하지 않는 4.4.9 버전의 PHP를 사용 중이므로 대신 XML을 사용했습니다. 답변 해주셔서 감사합니다. – Jordan

2

Objective-C에서 읽을 수있는 형식으로 배열을 포맷해야합니다. JSON을 사용하는 것이 좋습니다.

PHP 5.2를 사용하는 경우 the built in functions을 사용하여 데이터를 인코딩 할 수 있습니다. 예를 들어 다음 목표 - C 측면에서

echo json_encode($records); 

, 당신은/인코딩 JSON을 디코딩하는 TouchJSON를 사용할 수 있습니다.

+0

+1 for JSON. 범죄하는 것은 너무 쉽습니다. – thomasrutter

+0

불행히도 PHP 버전 4.4.9가 붙어 있습니다. – Jordan

관련 문제