1

나는 Objective-C/Cocoa 기반의 응용 프로그램을 가지고 있습니다. 이 응용 프로그램은 클라이언트 < -> 서버입니다. 현재 통신 프로토콜은 매우 간단한 XML을 기반으로합니다. XML은이 작업을 위해 작동하지만 어떤면에서는 이상적이지 않습니다. 데이터를 XML로 직렬화하는 것은 고통스럽지 만 특별히 가벼우 며 데이터가 아닌 정보 (예 : '다음에서 수행')를 통합하기가 어렵습니다.데이터 직렬화

대체 방법에 대한 제안을 찾고 있습니다.

나는 here으로 나열된 것들 중 일부를 고려했지만 어떤 것도 결정하지 않았습니다. 제안?

답변

1

저는 iPhone 응용 프로그램에 JSON을 사용하고 있습니다. 일반적으로 XML을 선호하지만, 매우 가볍기 때문에 JSON을 결정했습니다.

XML을 사용하는 경우 XPath를 아직 보지 않았다면 XML 데이터 구조에서 값을 추출 할 수있는 엄청난 힘을 얻게됩니다.

+0

+1, 나는 xPath를 사용하는 것이 더 쉽다고 생각하지 않았습니다. hmmmm – Allyn

1

어떤 종류의 서버가 있습니까? 서버가 Java 기반이라면 Fredrik Olsson이 HessianKit을 볼 것을 권장합니다. 일반적인 Objective-C 유형으로 인코딩/디코딩 한 다음 NSArrays와 NSDictionaries에 넣으면 경험이 더 원활 해집니다.

+0

그것도 objective-c/코코아입니다. 양쪽에서 – Allyn

+1

@ Allyn ObjC로 작성되었습니다. :) 그렇다면 NSKeyedArchiver와 NSKeyedUnarchiver를 직접 사용하는 방법에 대해 바이너리 패키지를 보낼 수 있다면 좋을 것입니다. 원하는 모든 것을 넣고 NSData를 가져 와서 보내십시오. 리시버에서 역으로 보내십시오. – epatel

0

(Portable) Distributed Objects의 문제점은 무엇입니까?

+0

나는 그것을 들여다 보았지만 그 해결책은 내 앱에 실제로 적용 할 수 없다. – Allyn

2

Objective-C 서버와 통신하는 경우 Objective-C에서 사용 가능한 기본 직렬화 방법을 사용하여 인코딩 및 디코딩을 조사 할 수 있습니다.

NSKeyedArchiver와 기본적으로 NSKeyedUnarchiver

당신이 다른 부분에 (바이트/길이)를 보내드립니다 NSKeyedArchiver에서 NSData을 얻고 거기 NSData에 다시 놓고 다시 객체로 압축을 풀 NSKeyedUnarchiver를 사용합니다 .

관련 문제