비디오: 파이널 판타지 택틱스 #2 [한글자막] 챕터 1 : 가진것 없는 자 - 마법도시 가리랜드 2024
Neal Goldstein 작성
iOS 클라우드 프로그래밍에 관해 이야기 할 때, iCloud (Apple에서 구현 한 것으로, 장치 간 데이터 동기화) 및 웹 서비스 (사용자가 앱을 어디에서 아는 사람이든 중간에 원격지 컴퓨터로 처리 할 수있게 해줍니다.) 웹 서비스는 클라우드에 저장된 데이터에 대해 사용자가 요청한 웹 서비스 요청 을 효율적으로 전달하는 방법에 의존합니다. 가장 효율적인 두 가지 형식 (지금은 최소한)은 XML과 JSON입니다. 여기서 찾을 수있는 팁은 웹 요청 (Google 지오 코더 웹 서비스를 예로 사용)을 설정하는 방법과 XML 응답과 JSON 응답을 모두 구문 분석하여 애플리케이션에서 웹 서비스 데이터를 사용할 수있는 방법을 보여줍니다.
웹 서비스에 의해 클라우드에서 반환 된 데이터 구문 분석
클라우드를 기반으로하는 웹 서비스를 사용하는 경우 사용자의 응답은 JSON 또는 XML 형식으로 전송 될 수 있습니다 서버와 웹 응용 프로그램 사이의 데이터 두 가지 형식 중 하나를 선택해야 할 때가있을 것입니다. 그러나 다른 경우에는 얻는 것과 함께해야합니다.
예를 들어, Google 지오 코딩 웹 서비스는 귀하에게 선택권을 부여합니다.
XML 형식의 응답을 원하면
http: // maps를 사용하십시오. googleapis. com / maps / api / geocode / xml
JSON에서 응답을 원할 경우
http: // maps를 사용합니다. googleapis. co.kr / maps / api / geocode / json? paremters
의도와 비슷하지만 XML 및 JSON 데이터 구조에서 정보를 얻는 방법은 실행 방식이 매우 다릅니다.
클라우드에서 XML 응답 파싱
클라우드를 기반으로하는 웹 서비스를 사용하는 경우 XML로 응답 할 수 있습니다. 클라우드 기반 웹 서비스로 작업 할 때 웹 브라우저
http: // maps에 다음을 입력해야합니다. googleapis. co.kr / maps / api / geocode / xml? sensor = true & address = EmpireState Building &
그러면 XML이 반환됩니다. 예:
… 40. 7484395 -73. 9856709 …
XML은 이해하기 쉬운 방식으로 정확하게 표현하지 않기 때문에 XML이 제공하는 것이 무엇이든 구문 분석해야합니다.
XML은 시작 태그와 종료 태그가있는 요소로 구성됩니다. iCloud를 통해 정보를 얻으려면 위임 패턴을 사용하는 NSXMLParser 클래스를 사용합니다. 이것이 작동하는 방법은 다음과 같습니다.
NSXMLParser * xmlParser = [[NSXMLParser alloc] initWithData: data]; [xmlParser setDelegate: self]; [xmlParser parse];
XML 데이터 구조를 구문 분석하기 위해 구현할 네 가지 NSXMLParser 대리자 메서드가 있습니다.
파서: didStartElement: namespaceURI: qualifiedName: attributes: 당신을 허용한다. 예를 들어, 파서가 태그가있는 요소를 찾았으며 파서: foundCharacters: 메소드에서 데이터를 추출하는 것은 사용자의 몫입니다.클라우드에서 JSON 응답 파싱
http: // maps에 다음을 입력해야합니다. googleapis. co.kr / maps / api / geocode / json? 예를 들어,
result {results: [{… geometry {{경계:
{
> 북동쪽: ( 위도: 40. 7489545, : -73. 98483449999999}, 남서쪽: { 위도: 40. 7479245, : -73. 9865073}}, 위치: 위: 40. 7484395, : -73. 9856709}, …} JSON은 XML만큼이나 비밀 스럽기 때문에 JSON이 제공하는 모든 것을 구문 분석해야합니다. - NSError * error = nil; NSDictionary * responseDict = [NSJSONSerialization JSONObjectWithData: data 옵션: NSJSONReadingMutableContainers 오류: & 오류];
JSON 구문 분석을 수행 할 때 설정할 수있는 옵션은 거의 없습니다.
NSJSONReadingMutableLeaves: 돌아온 문자열은 변경할 수 있으므로 변경할 수 있습니다. 기본값은 변경 불가능합니다.NSJSONReadingAllowFragments: 파서가 배열이나 사전이 아닌 최상위 오브젝트를 허용하도록 지정합니다. 기본 설정에서는 JSON 최상위 오브젝트가 배열 또는 사전이어야합니다.
이 경우, 당신은
NSDictionary * result = [results objectAtIndex: 0]을 수행하여 lat 및 lng 위치에 도달 할 수 있습니다. NSDictionary * geometry = [결과 objectForKey: @ "기하학"]; NSDictionary * 위치 = [기하학 objectForKey: @ "위치"]; 위도 = [location valueForKey: @ "lat"]; 경도 = [location valueForKey: @ "lng"];