2010-05-07 3 views
0

내 응용 프로그램에서 NSArray에로드 할 수있는 온라인 데이터베이스가 있습니다. 정적 파일과 함께 arrayWithContentsOfURL을 사용할 수 있지만 데이터베이스에서 plist 파일을 생성하고 배열에로드하는 URL로 이동해야합니다. ASP 또는 PHP를 사용할 수 있습니다. 응답 유형을 "text/xml"로 설정하려고 시도했지만 도움이되지 않습니다.PHP 또는 ASP의 동적 데이터베이스 URL에서 NSArray를 iPhone에로드 중

의견이 있으십니까?

+0

ASP 또는 PHP가 생성 된 XML을 게시 할 수 있습니까? 그리고'arrayWithContentsOfURL'을 호출하는 코드는 무엇입니까? – pgb

답변

0

Apple의 plist 형식은 단순한 xml 스키마가 아닙니다. 서버에 유효한 plist 파일을 생성해야합니다.

예 : CFPropertyList을 사용하십시오.

0

가장 좋은 것은 json을 사용하고 있습니다. 잘 포맷 된, 매우 짧은 코드, 가볍고, 빠르고 사용하기 쉽습니다.

예를 들어 PHP로 배열을 생성하고 obj-c 코드에서 가져 오려는 항목을 생성하십시오.

$arr = array("foo" => "bar", "foobar" => "barfoo"); 

는 JSON 개체에 배열을 인코딩하고

echo '{"myarray":'.json_encode($arr).'}'; 

복사 귀하의 응용 프로그램에 json framework 그냥 사용 에코 :

NSString *resultString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://foo.bar/yourfile.php"]]; 
NSDictionary *resultJson = [resultString JSONValue]; 
NSArray *resultSet = [resultJson objectForKey:@"comments"]; 

지금 당신이 정확히 같은 배열을 가지고 당신의 아이폰 코드, PHP 파일에서와 마찬가지로.

// 편집 : 당신은 더 나은 성능과 다른 멋진 것들에 대한 NSURLRequest 사용할 수 있습니다

. 확인 해봐.

+0

json과 원래 plist의 유일한 차이점은 구분 기호이므로 plist를 만들고 json 프레임 워크를 건너 뛸 수 있습니다. – drawnonward

+0

하지만 plist는 json 객체보다 더 많은 트래픽이 필요합니다. – choise