【发布时间】:2016-04-01 17:04:05
【问题描述】:
我想用一种方法打印#file、#function 和#line。
我尝试了以下代码,但问题就在这里。
无论我在哪里调用logm(),它总是打印logm 方法本身的信息,即使我将它声明为@inline。
@inline(__always) func logm(items: Any...) {
if let f = #file.componentsSeparatedByString("/").last {
print("[\(f)][\(#function)][\(#line)]:", items)
} else {
print("[\(#function)][\(#line)]: ", items)
}
}
有没有办法实现这种东西?为什么@inline 可以正常工作?
【问题讨论】:
-
我投票决定重新提出这个问题,因为原来的“Swift 中的宏?”不是特别详细或与这个问题相似。答案可能相似,但上下文不同。
-
@jtbandes 谢谢。我仍然想知道为什么
@inline没有按预期工作。