바이트로 데이터를 전송하고 수신기 측에서 동일한 NSData 객체를 다시 생성하려고합니다. 내 데이터 크기가 계속 변할 수 있습니다. 동일한 객체를 다시 생성하기 위해 수신기 측에서 사용할 올바른 길이를 정의 할 수 있습니다.바이트 스트림에서 올바른 NSData 객체 생성
NSDictionary *aWritableFields = @{@"Data1": @"1", @"Data2": @"2", @"Data3": @"3", @"Data4" : @"4"};
NSData *aData = [NSJSONSerialization dataWithJSONObject:aWritableFields options:0 error:nil];
uint32_t *bytes = (uint32_t *)aData.bytes;
수신자 측에서는 동일한 NSData 객체를 다시 생성하려고합니다. 이를 위해 나는 다음과 같은 방법을 사용하고 있지만 이것이 여분의 정보를 제공하고 있습니다. 그것이 올바른 NSData 객체를 제공하도록 길이를 어떻게 정의해야합니까? 내가 보낸
[NSData dataWithBytes:iBytes length:sizeof(uint32_t)*24];
데이터 객체이었다 :
< 7b225555 4944223a 2231222c 224d696e 6f72223a 2231222c 22506f77 6572223a 2233222c 224d616a 6f72223a 2232227d>
그러나 수신기 끝에 나는 때문에 과도한 길이의 수 :
< 7b225555 4944223a 2231222c 224d696e 6f72223a 2231222c 22506f77 6572223a 2233222c 22 4d616a 6f72223a 2232227d a3a3a3a3 a3a3a3a3 a3a3a3a3 a3a3a3a3 a3a3a3a3 a3a3a3a3 a3a3a3a3 a3a3a3a3 a3a3a3a3 a3a3a3a3 a3a3a3a3 a3a3a3a3>