Heh, it would be nice to catch this. You're collecting a bunch of arguments in an Array, and then passing that array straight on as a single argument itself, which means it gets passed as either an NSArray or a pointer (not sure which). Use 'init(format:arguments:)' instead.
Jordan > On Nov 14, 2017, at 17:19, Rick Mann via swift-users <swift-users@swift.org> > wrote: > > I've had a long-working `debugLog()` method that looks like this: > > ``` > func > debugLog<T>(_ inMsg: T, file inFile : String = #file, line inLine : Int = > #line) > { > let file = (inFile as NSString).lastPathComponent > let s = "\(file):\(inLine) \(inMsg)" > print(s) > } > ``` > > I wanted to add a version that works like `String(format:)`: > > ``` > func > debugLog(format inFormat: String, file inFile : String = #file, line inLine : > Int = #line, _ inArgs: CVarArg...) > { > let s = String(format: inFormat, inArgs) > debugLog(s, file: inFile, line: inLine) > } > > ``` > > While this compiles and executes, all of the values are zero for this example: > > ``` > let xc = CGFloat(1.0) > let yc = CGFloat(0.0) > let len = CGFloat(282.1364917907643) > > debugLog(format: "Pixel %f, %f length too far %f", xc, yc, len) > ``` > > Output: > > ``` > FisheyeImageRenderer.swift:108 Pixel 0.000000, 0.000000 length too far > 0.000000 > ``` > > Something is being misinterpreted in the passing of `inArgs: CVarArg...` > > TIA, > > -- > Rick Mann > rm...@latencyzero.com > > > > _______________________________________________ > swift-users mailing list > swift-users@swift.org > https://lists.swift.org/mailman/listinfo/swift-users
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users