Can't convert to expected type _ ??

For my public init method I'm using a Sequence type so that I can support multiple "things" coming in. Internally I want an array of UInt8 but this way I can let them pass a Data object, for example, so I've defined my primary initializer to take the sequence of bytes. A common case though will be to pass in a string value so I'm trying to make a convenience initializer.


class Example {
    public init<Bytes : Sequence>(padding: Bytes? = nil, data: Bytes? = nil) throws where Bytes.Element == UInt8 {
    }

    convenience init<Bytes : Sequence>(padding: Bytes?, stringData: String) throws where Bytes.Element == UInt8 {
        let encodedData = [UInt8](stringData.utf8)
        try self.init(padding: padding, data: encodedData)
    }
}


Line 7, above, is giving a compiler error: Cannot convert value of type '[UInt8]' to expected argument type '_?'


I don't understand why it's getting that error as it can see it's an array of UInt8, which is what the designated initializer wants to receive.

Can't convert to expected type _ ??
 
 
Q