Gostaria de escrever uma string em um outPutStream de uma conexão bluetooth que estabeleci usando EAAccessory, porem esse outputstream sempre "hasSpaceAvailable" false. Creio que o erro esteja na forma com que estou tentando escrever a mensagem no outpustream.
Codigo atual:
var session = EASession(accessory: device, forProtocol: device.protocolStrings[0])
var outputStream = session.outputStream
print(write("teste", out: outputStream!))
func write(_ string: String, encoding: String.Encoding = String.Encoding.utf8, allowLossyConversion: Bool = true, out:OutputStream) -> Int {
print(out.hasSpaceAvailable)
if let data = string.data(using: encoding, allowLossyConversion: allowLossyConversion) {
var bytesRemaining = data.count
var totalBytesWritten = 0
while bytesRemaining > 0 {
let bytesWritten = data.withUnsafeBytes {
out.write(
$0.advanced(by: totalBytesWritten),
maxLength: bytesRemaining
)
}
if bytesWritten < 0 {
// "Can not OutputStream.write(): \(self.streamError?.localizedDescription)"
return -1
} else if bytesWritten == 0 {
// "OutputStream.write() returned 0"
return totalBytesWritten
}
bytesRemaining -= bytesWritten
totalBytesWritten += bytesWritten
}
return totalBytesWritten
}
return -1
}
Desde ja, obrigado pela ajuda.