현재이 NSData 객체를 생성 중입니다. NSString 및 UInt32 유형의 다른 개체를 넣고 싶습니다. 내 NSData 객체에 NSString을 두는 방법을 알고 있지만 UInt32 스칼라 유형으로이 작업을 수행하는 방법을 알지 못합니다. UInt32 스칼라 유형을 NSData 객체로 인코딩하는 방법
이
내가 그것을 어떻게하는있는 NSString 그래서, 대신 다른 사람이이 질문에 대한 답변이되었다고 볼 수 있도록 그냥 대답에 넣어 것입니다 내 질문에 업데이트하는 그것을 알아 낸- (void) constructRequest
{
NSString *mystring = [[NSString alloc] initWithString:[self addMethodName]];
UInt32 protocolInt = [self addProtocolVersion];
NSData* data=[mystring dataUsingEncoding:NSUTF8StringEncoding];
[data writeToFile:@"/Users/imac/Desktop/_dataDump.dat" atomically:YES];
}
그렇게하지 마십시오. 엔디안 - 안전하지 않습니다 (PowerPC Mac과 Intel Mac은 다르게 읽을 것입니다.) –
hrmm. 그렇다면 어떻게하면 엔디안 - 안전하게 만들 수 있습니까? 현재 big-endian으로 만들려고 노력 중입니다. 결과를 내 바탕 화면의 .dat 폴더에 출력하고 결과를 확인하기 위해 HexEdit을 사용하여 열었습니다. 현재 빅 엔디안으로 읽는 중입니다. 이것을 안전하게 할 수 있습니다. –
'CFSwapInt32HostToBig()'또는'CFSwapInt32HostToLittle()'을 사용하여 알려진 순서로 바이트 스왑한다. 이것을 읽을 때 결과 정수를'CFSwapInt32BigToHost()'또는'CFSwapInt32LittleToHost()'를 적절히 사용하여 네이티브 순서로 바꾼다. –