2

CoreBluetooth 프레임 워크를 사용하여 Bluetooth LE를 통해 iDevice-to-iDevice와 통신하는 앱이 있습니다. 내 특성 중 하나는 NSKeyedArchiver (예 : accepted answer for this question)로 인코딩 된 날짜를 보냅니다. 이 경우NSKeyedArchiver로 인코딩 된 데이터를 쓸 때 CoreBluetooth가 실패합니까?

, 내가 얻을 :

CoreBluetooth[WARNING] Unknown Error: 9 

그리고 주변에도 쓰기 요청을 수신하지 않으며, 오류를 던져 않습니다. MyDate가 유효한있는 NSDate입니다

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:self.myDate]; 
[self.connectedDevice writeValue:data forCharacteristic:self.myCharacteristic type:CBCharacteristicWriteWithResponse]; 

:

중앙 측면에서

, 그것은 다음과 같은 작업을 수행합니다.

나는 Bluetooth Core 4.0 설명서, 볼륨 2, 파트 D, 섹션 2, 오류 코드 0x09가 연결 제한 초과라는 것을 알고 있습니다. 그러나이 상황에서는 의미가 없습니다 (둘 사이에 하나의 연결 만 있음).

흥미로운 사실은 내가 그냥 문자열을 인코딩하고 보내는 경우, 아무런 문제가 없다는 것입니다 :

NSData *data = [self.localTestString dataUsingEncoding:NSUTF8StringEncoding]; 
[self.connectedDevice writeValue:data forCharacteristic:self.myCharacteristic type:CBCharacteristicWriteWithResponse]; 

주변은 쓰기 요청을 수신, 제대로 디코딩 할 수 있으며, 문제없이 받아 들일 수 있습니다.

누구나 무슨 일이 벌어지고 있는지 알 수 있습니까?

답변

0

키 자료와 로컬 테스트 문자열의 크기는 어느 정도입니까? 특성에 대한 쓰기 가능한 크기를 초과하는 것 같습니다.