> On Apr 22, 2017, at 12:23 , Saagar Jha <saa...@saagarjha.com> wrote:
> 
> 
> Saagar Jha
> 
>> On Apr 21, 2017, at 04:35, Rick Mann via swift-users <swift-users@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?`?

So I can write debugLog(<something other than string>)

> 
>> {
>>      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”).

No, this is missing the point. I don't want to have to write this everywhere. I 
just want to tell the compiler not to issue the warning in these cases, much in 
the way you can tell the compiler to check printf format specifiers.

> 
>> }
>> 
>> 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
>> rm...@latencyzero.com
>> 
>> 
>> _______________________________________________
>> swift-users mailing list
>> swift-users@swift.org
>> https://lists.swift.org/mailman/listinfo/swift-users
> 


-- 
Rick Mann
rm...@latencyzero.com


_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to