0

私は得るために変換Data bytesしていますsockaddrsa_family_t

ではObjC、以下のとおりです。

NSData *     hostAddress;
- (sa_family_t)hostAddressFamily {
    sa_family_t     result;

    result = AF_UNSPEC;
    if ( (self.hostAddress != nil) && (self.hostAddress.length >= sizeof(struct sockaddr)) ) {
        result = ((const struct sockaddr *) self.hostAddress.bytes)->sa_family;
    }
    return result;
}

迅速に私はそれを以下のように変換しようとしています:

var hostAddress:Data?

 private func hostAddressFamily() -> sa_family_t{

        var result: sa_family_t = sa_family_t(AF_UNSPEC)
        if (hostAddress != nil) && ((hostAddress?.count ?? 0) >= MemoryLayout<sockaddr>.size) {

            // Generic parameter 'ContentType' could not be inferred
            self.hostAddress!.withUnsafeBytes({ bytes in
                bytes.withMemoryRebound(to: sockaddr.self, capacity: 1, {sockBytes in
                    result = sockBytes.pointee.sa_family
                })
            })
        }

        return result
    }

Getting error : Generic parameter ‘ContentType’ could not be inferred

4

1 に答える 1