println()如果我不在Debug版本中,我想全局忽略Swift代码中的所有调用。我找不到任何健壮的逐步说明,希望能提供一些指导。有没有办法做到这一点从全球来看,还是我需要围绕每一个println()与#IF DEBUG/#ENDIF报表?
println()
#IF DEBUG/#ENDIF
如前所述,我是一名学生,需要对定义的事情有更明确的了解。经过大量研究,我需要遵循的顺序是:
单击Xcode项目窗口左侧文件浏览器顶部的项目名称。此行包含项目名称,有多少个构建目标以及iOS SDK版本。
选择“ 构建设置” 选项卡,然后向下滚动到底部附近的“ Swift编译器-自定义标志 ”部分。单击 其他标志 旁边的向下箭头以展开该部分。
单击“ 调试” 行以将其选中。将鼠标光标放在该行的右侧,然后双击。将出现一个列表视图。单击列表视图左下方的 + 按钮以添加一个值。文本字段将变为活动状态。
在文本字段中,输入文本-D DEBUG,然后按 Return 键以提交该行。
-D DEBUG
将新的Swift文件添加到您的项目。您将要为文件创建一个自定义类,因此请按照以下内容输入文本:
class Log { var intFor : Int init() { intFor = 42 } func DLog(message: String, function: String = __FUNCTION__) { #if DEBUG println("\(function): \(message)") #endif } }
今天我很难让该类被Xcode接受,因此init可能比必要的要重一些。
现在,您将需要在打算使用新的自定义函数的任何类中引用您的自定义类,而不是println()在每个适用的类中将此添加为属性:
let logFor = Log()
现在,你可以替换的任何实例println()用logFor.DLog()。输出还包括在其中调用该行的函数的名称。
logFor.DLog()
请注意,在类内部函数中,除非我将该函数的副本作为该类中的类函数进行复制,否则无法调用该函数,并且输入println()内容也更加灵活,因此无法在我的代码。