Well, technically you can via the varargs variants, but it's pretty unwieldy:
"20151130T052035".cStringUsingEncoding(NSUTF8StringEncoding)?.withUnsafeBufferPointer { buf in
let scanStr = buf.baseAddress
var year: Int32 = 0
var month: Int32 = 0
var day: Int32 = 0
var hour: Int32 = 0
var minutes: Int32 = 0
var seconds: Int32 = 0
withUnsafeMutablePointers(&year, &month, &day) { yearPtr, monthPtr, dayPtr in
withUnsafeMutablePointers(&hour, &minutes, &seconds) { hourPtr, minPtr, secPtr in
let args: [CVarArgType] = [yearPtr, monthPtr, dayPtr, hourPtr, minPtr, secPtr]
if vsscanf(scanStr, "%4d%2d%2dT%2d%2d%2d", getVaList(args)) < 6 {
print("Something went wrong!")
} else {
print("year: \(year) month: \(month) day: \(day) hour: \(hour) minutes: \(minutes) seconds: \(seconds)")
}
}
}
}