[swift-users] Any way to declare a method that suppresses the string interpolation warning?

Saagar Jha saagar at saagarjha.com
Sat Apr 22 14:23:16 CDT 2017


Saagar Jha

> On Apr 21, 2017, at 04:35, Rick Mann via swift-users <swift-users at swift.org> wrote:
> 
> I have a debugLog() method that looks like this:
> 
> func
> debugLog<T>(_ inMsg: T, _ inFile : String = #file, _ inLine : Int = #line)

Well, for starters, I don’t see why you need to make this function generic. Why not make inMsg an `Any?`?

> {
> 	let df = DateFormatter()
> 	df.dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"
> 	let time = df.string(from: Date())
> 	
> 	let file = (inFile as NSString).lastPathComponent
> 	print("\(time) \(file):\(inLine)    \(inMsg)”)

Try \(inMsg ?? “nil”).

> }
> 
> Is there any way to decorate it so that string interpolation of optionals passed to it inMsg don't produce the warning about using debugDescription? In the case of debug logging, that's completely acceptable, and I don't want to have to write String(describing:) everywhere.
> 
> 
> -- 
> Rick Mann
> rmann at latencyzero.com
> 
> 
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20170422/da68b812/attachment.html>


More information about the swift-users mailing list