title: Unable to write data into hardware peripheral
body: <p>I am using CoreBlueTooth API to write data into a peripheral we have received from some hardware manufacturing company. As per the specs they have given us a bunch of characteristics UUIDs to write data into. Once we want to finish we need to write 0 in one of the characteristics. Now, the problem is that when I am trying to send String/Integer and converting them into NSData then its not working. I think I need to send byte stream in those writable characteristics. Can someone help me as how can I convert my NSString &amp; NSNumber data into byte stream before sending them. Below is my conversion code I tried with:</p>
  
  <pre><code>- (void)writeCharactersticData:(NSDictionary *)iData toPeripheral:(CBPeripheral *)iPeripheral {
      NSArray *charactersticsIDs = [NSArray arrayWithArray:iData.allKeys];
      self.writeCharactersticsCount  = charactersticsIDs.count;
  
      for (CBUUID *uuid in charactersticsIDs) {
          if (self.peripheralCharacterstics[uuid]) {
  
  
  
              NSData *payload;
  
              if ([iData[uuid] isKindOfClass:[NSNumber class]]) {
                  NSInteger data = ((NSNumber *)iData[uuid]).integerValue;
  //                int integerSize = sizeof(data);
  //                
  //                uint8_t bytes[integerSize];
  //                
  //                
  //                NSLog(@"Integer data = %d", data);
  //                
  //                int8_t tx = (int8_t)data;
  //                bytes[0] = tx;
  //                payload = [NSData dataWithBytes:bytes length:sizeof(data)];
  
                  payload = [NSData dataWithBytes:&amp;data length:sizeof(data)];
              } else if ([iData[uuid] isKindOfClass:[NSString class]]) {
  
                  int stringSize = sizeof(iData[uuid]);
                  uint8_t bytes[stringSize];
                  NSScanner *scanner = [NSScanner scannerWithString:iData[uuid]];
  
                  for (int i=0; i&lt;stringSize; i++) {
                      unsigned int value;
                      [scanner scanHexInt:&amp;value];
                      bytes[i] = (uint8_t)value;
                  }
  
                  payload = [NSData dataWithBytes:bytes length:stringSize];
  //                payload = [iData[uuid] dataUsingEncoding:NSUTF8StringEncoding];
              }
  
              [self.discoveredPeripheral writeValue:payload forCharacteristic:self.peripheralCharacterstics[uuid] type:CBCharacteristicWriteWithResponse];
          }
      }
  }
  </code></pre>