ios - Error ("'()' is not identical to 'UInt8'") writing NSData bytes to NSOutputStream using the write function in Swift -
I am trying to create an asynchronous file download in Swift. But I need to handle large files, so I found, understand.
 However, I can not get it to work when I try to add NSData byte (write my NSURLConnection didReceiveData function) NSOutputStream to work, I get this error:  '() 'UInt8' is not equivalent to doing this on line:  bytesWritten = self.downloadStream.write (data.bytes, maxLength: bytesLeftToWrite).  
  data.bytes  type  is ConstUnsafePointer & lt; () & gt;  and  .write ()  function to  ConstUnsafePointer & lt; UInt8 & gt;  is expected, so in that sense, the error is correct but since I am new to iOS and definitely do SWIFT programming, how can I fix it? 
  So, how do I change the  data.bytes? : ConstUnsafePointer & lt; () & Gt;  to  ConstUnsafePointer & lt; UInt8 & gt;  alt Do this work any other way?  
  My  didReiveiveData  function:    
  Function connection (connection: NSURLConnection !, didReceiveData Data: NSData) {var bytesLeftToWrite: NSInteger = bytesWritten at data.length: NSInteger = 0 while bytesLeftToWrite & gt; 0 {bytes = written: self.downloadStream.write (data.bytes, maxLength: bytesLeftToWrite) if bytesdrated == -1 {brake} bytes Left Titrate - = Bytes ResponseExiconlineGenate: NSNumber = NSNumber (Long Long: Self Download Response .experrent content length) NSNumber = NSNumber (long: data.length) self.downloadProgressPercentage = ((dataLength / responseExpectedlenght) * 100) println ("Downloaded: \ (self.downloadProgressPercentage)%")}}  
 You can specify the  with the insecure indicator Can be cast () : 
  bytes written = self.downloadStream.write (unsafe indicator (data. Bytes), maximum length: bytes latehurite)   There is also a problem in your writing loop, because you always should initial bytes of data objects in the output stream
This should probably look similar to (untest ed):
  bytes = UnsafePointer & lt; UInt8 & gt; (Data.bytes) bytesLeftToWrite: NSInteger = data.length while bytesLeftToWrite & gt; 0 {(bytes maxLength: bytesLeftToWrite) bytesWritten = go to self.downloadStream.write if bytesWritten == -1 {// break something went wrong ...} bytesLeftToWrite - = bytesWritten Bytes + = bytesWritten // Advance Pointer // }   
Comments
Post a Comment