2013-06-11 3 views
0

나는 파이썬 (트위스트를 사용하는)과 많은 클라이언트 중 하나가 iOS 인 tcp 서버를 가지고 있습니다. 연결이 설정되면, 내 서버는 클라이언트에 문자열로 변환 파이썬 사전을 보냅니다파이썬 문자열을 nsdictionary로 변환합니다.

self.stringRep = str(self.myDictionary) 
//somewhere else 
self.connection.write(self.stringRep) 

내 질문은 내가 목표 - C 클라이언트에있는 NSDictionary에 파이썬 사전의 문자열 표현을 변환 할 방법이다. 나는 objective-C에서 NSString으로 표현한다.

희망 사항을 충분히 기재했습니다. 미리 감사드립니다.

EDIT : JSON으로 변환하지 않고 수행 할 수 있다면 좋을 것입니다. 다른 방법이 없다면 JSON이 할 것입니다.

+3

사전의 문자열 표현을 만들기 위해'str()'을 사용하지 않을 것입니다. JSON은 여러 언어로 작성된 라이브러리가있는 표준 형식이므로'json.dumps()'와 같은 것을 사용하십시오. – Blender

+0

JSON의 문제점은 무엇입니까? – Blender

+0

JSON에 익숙하지 않습니다. 현재 모든 클라이언트 서버 상호 작용은 일부 키워드가 구분 기호로 구분 된 TCP 메시지를 통해 이루어집니다. JSON 표현에 상호 작용이 중단 될 수 있는지 여부는 알 수 없습니다. 어쨌든, 최선의 시나리오에서 작동하더라도 다른 클라이언트의 코드를 리팩터링하는 데는 시간이 걸릴 것입니다. 앞으로 모든 일이 진행되면서 JSON으로 변환하고 클라이언트 - 서버 상호 작용 메커니즘을 변경합니다. – user2103008

답변

0

XML 또는 JSON과 같은 표준 형식을 사용해보십시오. 나중에 선호됩니다.

이동 중에도 필요한 것이 있으면 문자열을 여러 개의 키 - 값 문자열로 분리 한 다음 결과의 각 문자열을 필요한 부분으로 분리하십시오.

NSString *string = @"{\'a\': \'10\', \'b\': \'20\'}"; 
NSArray *allEntries = [string componenetsSeparatedByString:@", "]; 
for(NSString *result in allEntries { 
    NSArray *keyValueArray = [result componenetsSeparatedByString:@" : "]; 
    myDictionary [keyValueArray[0]] = keyValueArray[1]; 
} 
관련 문제