[swift-users] Data withUnsafeBytes

Chris McIntyre cmcintyre3600 at gmail.com
Sat Sep 3 11:00:41 CDT 2016


Hi guys, 

I’m either missing a subtlety in regards to closures or I found a bug with the type inference system in Xcode 8 Beta 6. Thought I’d run it by you.

I’m trying to use Data’s method withUnsafeBytes(_:). It’s declared as:


func withUnsafeBytes<ResultType, ContentType>(_ body: (UnsafePointer<ContentType>) throws -> ResultType) rethrows -> ResultType

The Swift Language book states that closure syntax uses the following form:


{ (parameters) -> returntype in
    statements
}

So, at the most basic implementation, I tried the following:

let tryThis = items.withUnsafeBytes {
    (bytes) -> Int in
    
    return 1
}

And I get the error Declared closure result 'Int' is incompatible with contextual type ‘ResultType’.

Xcode suggests I change Int to ResultType, but that just gives me the error that I’m using an undeclared type. 

Am I getting the syntax wrong or Xcode getting confused?

Thanks a lot. 

—
Chris McIntyre
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20160903/b7cf5466/attachment.html>


More information about the swift-users mailing list