Swift编译器宏(警告或停止)

时间:2015-05-27 13:41:37

标签: swift

是否有可以与Swift一起使用的编译器宏?通常情况下,我经常使用模板,这些模板经常需要改变一些部分,因为快速移动,我已经失去了对#warning

的热爱。

2 个答案:

答案 0 :(得分:1)

您可以使用// MARK

// MARK: - UIImagePickerControllerDelegate Methods
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
    let image = info[UIImagePickerControllerOriginalImage] as! UIImage

    if let backgroundImageChangedBlock = self.backgroundImageChangedBlock {
        backgroundImageChangedBlock(backgroundImage: image)
    }

    self.dismissViewControllerAnimated(true, completion: nil)
}

// MARK: - UINavigationControllerDelegate Methods
func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
    UIApplication.sharedApplication().setStatusBarHidden(true, withAnimation: .None)
}

enter image description here

Xcode不支持#warning,但您可以使用脚本短语:https://stackoverflow.com/a/26869489/907422

将新的运行脚本添加到目标的构建阶段选项卡(项目设置>构建阶段>' +'>新运行脚本阶段),并将以下代码粘贴到空盒子:

TAGS="WARNING"
echo "searching ${SRCROOT} for ${TAGS}"
find "${SRCROOT}" \( -name "*.swift" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($TAGS).*\$" | perl -p -e "s/($TAGS)/ warning: \$1/"

enter image description here

答案 1 :(得分:0)

Swift中没有编译器宏或其他preprocessor directives。您可以设置构建配置,但我怀疑这不是您要查找的内容。

您可以使用documentation将代码部分标记为需要更改。除非模板正确实现,否则您还可以编写将失败的单元测试。

除非正确实现,否则

Assertions也可能是模板化代码失败的好方法。